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-5112: Update compatibility system tests to include 0.10.2.1 #2701

Closed
wants to merge 4 commits into from

Conversation

ijuma
Copy link
Contributor

@ijuma ijuma commented Mar 17, 2017

No description provided.

@ijuma
Copy link
Contributor Author

ijuma commented Mar 17, 2017

Review by @hachikuji, @ewencp, @cmccabe.

@ijuma
Copy link
Contributor Author

ijuma commented Mar 17, 2017

System tests run: https://jenkins.confluent.io/job/system-test-kafka-branch-builder-2/204/ (URL will work once the run starts, it's currently queued).

@asfbot
Copy link

asfbot commented Mar 17, 2017

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

@asfbot
Copy link

asfbot commented Mar 17, 2017

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

@asfbot
Copy link

asfbot commented Mar 17, 2017

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

Copy link
Contributor

@ewencp ewencp left a comment

Choose a reason for hiding this comment

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

@ijuma tests/kafkatest/sanity_checks/test_verifiable_producer.py and tests/kafkatest/tests/streams/streams_broker_compatibility_test.py seem like they might be missing from this patch.

Although the former might be a candidate to be deleted (along with other sanity checks) since they're effectively subsets of other tests anyway and so probably cost more test time than they are worth in debugging value.

@@ -27,5 +27,6 @@ RUN mkdir -p "/opt/kafka-0.8.2.2" && curl -s "${MIRROR}kafka/0.8.2.2/kafka_2.10-
RUN mkdir -p "/opt/kafka-0.9.0.1" && curl -s "${MIRROR}kafka/0.9.0.1/kafka_2.10-0.9.0.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.9.0.1"
RUN mkdir -p "/opt/kafka-0.10.0.1" && curl -s "${MIRROR}kafka/0.10.0.1/kafka_2.10-0.10.0.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.10.0.1"
RUN mkdir -p "/opt/kafka-0.10.1.1" && curl -s "${MIRROR}kafka/0.10.1.1/kafka_2.10-0.10.1.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.10.1.1"
RUN mkdir -p "/opt/kafka-0.10.2.0" && curl -s "${MIRROR}kafka/0.10.2.0/kafka_2.10-0.10.2.0.tgz" | tar xz --strip-components=1 -C "/opt/kafka-0.10.2.0"
Copy link
Contributor

Choose a reason for hiding this comment

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

I am wondering based on how many places require modification if we should centralize the version info into a single location, e.g. a json file that everything else can rely on and code like this could be turned into a loop. Seems like these version additions would require touching a lot less stuff that way.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That sounds good. OK if I file a JIRA for it?

Copy link
Contributor

Choose a reason for hiding this comment

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

👍

@@ -46,12 +45,12 @@ def setUp(self):

@cluster(num_nodes=6)
@parametrize(producer_version=str(LATEST_0_8_2), consumer_version=str(LATEST_0_8_2), compression_types=["none"], new_consumer=False, timestamp_type=None)
@parametrize(producer_version=str(LATEST_0_8_2), consumer_version=str(LATEST_0_9), compression_types=["none"], new_consumer=False, timestamp_type=None)
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm a fan of removing unneeded parameterizations, but is this ok to remove just because we don't think there's anything between 0.8 and 0.9 clients that would be affected by running against an 0.10 broker?

Copy link
Contributor Author

@ijuma ijuma Mar 22, 2017

Choose a reason for hiding this comment

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

It seems a bit odd that we have so many combinations for 0.8.2 and 0.9 while we have very few for each of the 0.10.x versions. Note that we a few cases where the consumer version is LATEST_0_9.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, I guess I just don't know what the strategy is for this test in terms of how we are choosing the combinations of producer/consumer version. Which makes it hard to review a patch adding/removing parameterizations :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can't discern a pattern apart from "have some coverage for all the versions" at the moment. Starting from a clean slate, if we want to be completely distrustful of all parts of the system, we'd want to test every possible producer/consumer combination. But we test same version producer/consumer pairs in many other tests, so we could drop those perhaps. So, this test would be about testing producer/consumers with different versions. The numbers will grow pretty quickly if we don't drop support for older versions though.

What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the exhaustive approach is good when we can do things like label tests for infrequent/must-pass-for-final-release, but kinda wasteful nightly.

I just lost track of how we decided what to add/remove/modify from these. If we're convinced we have sufficient coverage, then I'm fine with the modifications.

@ijuma
Copy link
Contributor Author

ijuma commented Apr 6, 2017

I'll update this PR to also take into account that we now have 3 message format versions (upgrade_test.py and message_format_change_test.py need to be updated).

@ijuma ijuma force-pushed the update-upgrade-tests-for-0.11 branch from 36ab9fa to f9388bc Compare May 31, 2017 18:30
@ijuma ijuma changed the title MINOR: Update compatibility system tests to include 0.10.2.0 MINOR: Update compatibility system tests to include 0.10.2.1 May 31, 2017
@ijuma ijuma changed the title MINOR: Update compatibility system tests to include 0.10.2.1 KAFKA-5112: Update compatibility system tests to include 0.10.2.1 May 31, 2017
@asfbot
Copy link

asfbot commented May 31, 2017

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

@asfbot
Copy link

asfbot commented May 31, 2017

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

@ijuma ijuma force-pushed the update-upgrade-tests-for-0.11 branch from 72b14b0 to 9e38fed Compare June 3, 2017 02:18
@asfbot
Copy link

asfbot commented Jun 3, 2017

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

@asfbot
Copy link

asfbot commented Jun 3, 2017

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

@@ -62,11 +62,16 @@ def perform_upgrade(self, from_kafka_version, to_message_format_version=None):
self.kafka.start_node(node)

@cluster(num_nodes=6)
@parametrize(from_kafka_version=str(LATEST_0_10_2), to_message_format_version=str(LATEST_0_9), compression_types=["none"])

Choose a reason for hiding this comment

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

Discussed offline. This one looks a little funny. We shouldn't be able to downgrade the message format.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The test actually passes. I guess it makes sense. If the clients understand the new format, then it works regardless of whether the broker/topic config has an older version.

Copy link

@hachikuji hachikuji left a comment

Choose a reason for hiding this comment

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

Left one comment, but the rest LGTM (provided tests are passing). One improvement which we could consider separately is testing upgrades from a newer kafka version running an older message format.

@ijuma ijuma force-pushed the update-upgrade-tests-for-0.11 branch from 9e38fed to 43f5466 Compare June 5, 2017 15:04
@asfbot
Copy link

asfbot commented Jun 5, 2017

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

@asfbot
Copy link

asfbot commented Jun 5, 2017

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

@hachikuji
Copy link

Thanks for the updates. LGTM

@ijuma
Copy link
Contributor Author

ijuma commented Jun 6, 2017

Since the branch builder is out of action, I ran the modified system tests via AWS and they passed. Merging to trunk and 0.11.0.

asfgit pushed a commit that referenced this pull request Jun 6, 2017
Also update message format tests now that we have a third message
format.

Finally, set group.initial.rebalance.delay.ms=100.

Author: Ismael Juma <ismael@juma.me.uk>

Reviewers: Ewen Cheslack-Postava <ewen@confluent.io>, Jason Gustafson <jason@confluent.io>

Closes #2701 from ijuma/update-upgrade-tests-for-0.11

(cherry picked from commit b119d04)
Signed-off-by: Ismael Juma <ismael@juma.me.uk>
@asfgit asfgit closed this in b119d04 Jun 6, 2017
@ijuma ijuma deleted the update-upgrade-tests-for-0.11 branch June 18, 2017 09:26
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.

4 participants