Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPARK-35930][BUILD] Upgrade kinesis-client to 1.14.4 #33133

Closed
wants to merge 1 commit into from

Conversation

sarutak
Copy link
Member

@sarutak sarutak commented Jun 29, 2021

What changes were proposed in this pull request?

This PR upgrades kinesis-client from 1.14.0 to 1.14.4

Why are the changes needed?

Upgrading to 1.14.1 or newer is recommended by the community for users who use kinesis-client 1.14.0 due to a bug.
https://github.com/awslabs/amazon-kinesis-client/tree/master#recommended-upgrade-for-all-users-of-the-1x-amazon-kinesis-client

Does this PR introduce any user-facing change?

No.

How was this patch tested?

Ran *Kinesis*Suite with ENABLE_KINESIS_TESTS=1 and they passed on an AWS environment

@github-actions github-actions bot added the BUILD label Jun 29, 2021
Copy link
Member

@dongjoon-hyun dongjoon-hyun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for making a PR, @sarutak . BTW, is it tested manually because this is not covered by CIs?

@sarutak
Copy link
Member Author

sarutak commented Jun 29, 2021

@dongjoon-hyun Thank you, I forgot that kinesis tests don't run on CI.
I ran *Kinesis*Suite with ENABLE_KINESIS_TESTS=1 and they passed on my AWS environment.
But kinesis-client seems to need newer Guava regardless of 1.14.4 or currently used 1.14.0.
Otherwise, we'll get like the following exception.

java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.createUnstarted()Lcom/google/common/base/Stopwatch;
        at com.amazonaws.services.kinesis.leases.impl.LeaseCleanupManager.<init>(LeaseCleanupManager.java:74)
        at com.amazonaws.services.kinesis.leases.impl.LeaseCleanupManager.createOrGetInstance(LeaseCleanupManager.java:105)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:579)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:537)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:406)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:294)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:351)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:198)
        at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.<init>(Worker.java:178)
        at org.apache.spark.streaming.kinesis.KinesisReceiver.onStart(KinesisReceiver.scala:192)
        at org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:149)
        at org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:131)
        at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint.$anonfun$startReceiver$1(ReceiverTracker.scala:596)
        at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint.$anonfun$startReceiver$1$adapted(ReceiverTracker.scala:586

So, I tried with -Dguava.version=27.0-jre. Is this expected?

I also ran kinesis tests on the commit a9e8e05 which upgraded kinesis-client to 1.14.0 but this also seems to need newer Guava.
On the other hand, the commit 82267ac which is the parent commit of a9e8e05 doesn't need newer Guava.

@SparkQA
Copy link

SparkQA commented Jun 29, 2021

Test build #140357 has finished for PR 33133 at commit ba8fc24.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@dongjoon-hyun
Copy link
Member

dongjoon-hyun commented Jun 29, 2021

-Dguava.version=27.0-jre sounds like a regression because the vanilla Apache Spark 3.2.x doesn't work while 3.1.x works.

Since there are some previous works to address the Guava restriction, ping @viirya , @sunchao , @HyukjinKwon in order to get some advice.

@sarutak
Copy link
Member Author

sarutak commented Jun 29, 2021

-Dguava.version=27.0-jre sounds like a regression because the vanilla Apache Spark 3.2.x doesn't work while 3.1.x works.

Yeah, a9e8e05 was not merged to branch-3.1 so I think that is the reason it works with 3.1.x while doesn't with 3.2.x.

@sunchao
Copy link
Member

sunchao commented Jun 29, 2021

Does it mean we'd need to upgrade Guava version in order for kinesis-client to work in Spark 3.2.0?

@viirya
Copy link
Member

viirya commented Jun 29, 2021

FYI, I re-opened #29326 to try upgrading guava again.

@HyukjinKwon
Copy link
Member

Shall we revert a9e8e05 first?

HyukjinKwon pushed a commit that referenced this pull request Jun 30, 2021
…dk 1.11.844"

### What changes were proposed in this pull request?

This PR reverts the change of SPARK-34549 ( #31658).

### Why are the changes needed?

See #33133.

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Closes #33145 from sarutak/revert-SPARK-34549.

Authored-by: Kousuke Saruta <[email protected]>
Signed-off-by: Hyukjin Kwon <[email protected]>
@dongjoon-hyun
Copy link
Member

Since SPARK-34549 is reverted, I'll close this PR, @sarutak . Thank you for checking.

After Guava issue is resolved, feel free to reopen this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants