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

KAFKA-5361: Add more integration tests for Streams EOS #3276

Conversation

mjsax
Copy link
Member

@mjsax mjsax commented Jun 8, 2017

  • multi-subtopology tests
  • fencing test
  • producer fenced bug fix: Streams did not recover correctly from ProducerFencedException

@mjsax
Copy link
Member Author

mjsax commented Jun 9, 2017

Call for review @enothereska @dguy @bbejeck @guozhangwang

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5089/
Test FAILed (JDK 7 and Scala 2.11).

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5073/
Test FAILed (JDK 8 and Scala 2.12).

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5092/
Test FAILed (JDK 7 and Scala 2.11).

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5076/
Test FAILed (JDK 8 and Scala 2.12).

@mjsax mjsax force-pushed the kafka-5361-add-eos-integration-tests-for-streams-api branch from 383937b to cf2c6da Compare June 9, 2017 18:27
@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5108/
Test PASSed (JDK 7 and Scala 2.11).

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5092/
Test PASSed (JDK 8 and Scala 2.12).

@mjsax mjsax force-pushed the kafka-5361-add-eos-integration-tests-for-streams-api branch from cf2c6da to 5e7fd50 Compare June 9, 2017 21:20
@mjsax
Copy link
Member Author

mjsax commented Jun 9, 2017

Call for review @enothereska @dguy @bbejeck @guozhangwang

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5118/
Test PASSed (JDK 7 and Scala 2.11).

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5102/
Test FAILed (JDK 8 and Scala 2.12).

@mjsax
Copy link
Member Author

mjsax commented Jun 9, 2017

Test failure unrelated: kafka.security.auth.SimpleAclAuthorizerTest.testHighConcurrencyModificationOfResourceAcls

@mjsax
Copy link
Member Author

mjsax commented Jun 9, 2017

Retest this please

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5104/
Test PASSed (JDK 8 and Scala 2.12).

@asfbot
Copy link

asfbot commented Jun 9, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5120/
Test PASSed (JDK 7 and Scala 2.11).

Copy link
Contributor

@guozhangwang guozhangwang left a comment

Choose a reason for hiding this comment

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

Left some minor comments.

Could you trigger say 5 consecutive builds on Jenkins and check their results?

@@ -57,7 +56,7 @@ public static void registerAppInfo(String prefix, String id) {
AppInfo mBean = new AppInfo();
ManagementFactory.getPlatformMBeanServer().registerMBean(mBean, name);
} catch (JMException e) {
log.warn("Error registering AppInfo mbean", e);
log.warn("Error registering AppInfo mbean: {}", e.getMessage());
Copy link
Contributor

Choose a reason for hiding this comment

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

Why this change?

Copy link
Member Author

Choose a reason for hiding this comment

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

I though we don't want to print stack traces for WARN level logs?

Copy link
Contributor

Choose a reason for hiding this comment

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

There is no such policy at the moment. Was there a specific issue with this line?

Copy link
Member Author

Choose a reason for hiding this comment

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

The issue we observed in Streams is, that people see a stack trace and get worried -- they don't pay attention to the log level that is WARN -- thus it seems better to never include stack traces on WARN to not confuse users. I can revert, too.

Copy link
Contributor

Choose a reason for hiding this comment

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

WARN is something to be worried about, right? If it's just informational, it should be INFO.

Copy link
Member Author

Choose a reason for hiding this comment

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

I agree. But WARN should still not contain a stack trace -- that's for ERROR IMHO.

Copy link
Contributor

Choose a reason for hiding this comment

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

That seems pretty arbitrary though since you just agreed that users should be worried either way. The problem may be that people are using warn when they should use info.

@@ -259,7 +260,7 @@ void retryWithBackoff(final Map<TaskId, Set<TopicPartition>> tasksToBeCreated, f
} catch (final LockException e) {
// ignore and retry
if (!retryingTasks.contains(taskId)) {
log.warn("{} Could not create task {}. Will retry. {}", logPrefix, taskId, e);
log.warn("{} Could not create task {}. Will retry. {}", logPrefix, taskId, e.getMessage());
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: could not create task {} due to {}. Will retry.

@@ -272,6 +273,7 @@ void retryWithBackoff(final Map<TaskId, Set<TopicPartition>> tasksToBeCreated, f
try {
Thread.sleep(backoffTimeMs);
backoffTimeMs <<= 1;
backoffTimeMs = Math.min(backoffTimeMs, maxBackoffTimeMs);
Copy link
Contributor

Choose a reason for hiding this comment

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

Why this change again? Or could you add this to the description of the PR (it seems not included)?

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh. My bad. That is unrelated and I included it to not forget about it -- currently, with exponential increase of waiting time users did report unsatisfying behavior for this. I think we need to fix it... This should also be back ported to 0.10.2... But maybe it should not be part of this PR. But not sure how else we can get it into 0.11 ;)

Copy link
Member Author

Choose a reason for hiding this comment

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

Opened #3312 for 0.10.2

Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm.. I was not aware of this, and could you point me to the un-statisfying behavior that user complain about? Would like to make sure if this is really an issue to fix before merging.

For this PR, I'd suggest we do not include it so that it can be merged.

Copy link
Member Author

Choose a reason for hiding this comment

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

Reverted this and created #3327

@mjsax
Copy link
Member Author

mjsax commented Jun 13, 2017

Updated.

@asfbot
Copy link

asfbot commented Jun 13, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5198/
Test PASSed (JDK 8 and Scala 2.12).

@asfbot
Copy link

asfbot commented Jun 13, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5214/
Test PASSed (JDK 7 and Scala 2.11).

@mjsax mjsax force-pushed the kafka-5361-add-eos-integration-tests-for-streams-api branch from 22e4792 to b8075a5 Compare June 13, 2017 22:47
@asfbot
Copy link

asfbot commented Jun 14, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5250/
Test PASSed (JDK 8 and Scala 2.12).

@asfbot
Copy link

asfbot commented Jun 14, 2017

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5267/
Test PASSed (JDK 7 and Scala 2.11).

asfgit pushed a commit that referenced this pull request Jun 14, 2017
 - multi-subtopology tests
 - fencing test
 - producer fenced bug fix: Streams did not recover correctly from ProducerFencedException

Author: Matthias J. Sax <matthias@confluent.io>

Reviewers: Ismael Juma <ismael@juma.me.uk>, Bill Bejeck <bill@confluent.io>, Guozhang Wang <wangguoz@gmail.com>

Closes #3276 from mjsax/kafka-5361-add-eos-integration-tests-for-streams-api

(cherry picked from commit 160933b)
Signed-off-by: Guozhang Wang <wangguoz@gmail.com>
@guozhangwang
Copy link
Contributor

LGTM and merged to trunk / 0.11.0.

@asfgit asfgit closed this in 160933b Jun 14, 2017
@mjsax mjsax deleted the kafka-5361-add-eos-integration-tests-for-streams-api branch June 14, 2017 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants