Skip to content

KAFKA-6054: Fix upgrade path from Kafka Streams v0.10.0#4779

Merged
mjsax merged 5 commits intoapache:trunkfrom
mjsax:kafka-6054-fix-upgrade-trunk
Apr 7, 2018
Merged

KAFKA-6054: Fix upgrade path from Kafka Streams v0.10.0#4779
mjsax merged 5 commits intoapache:trunkfrom
mjsax:kafka-6054-fix-upgrade-trunk

Conversation

@mjsax
Copy link
Copy Markdown
Member

@mjsax mjsax commented Mar 27, 2018

No description provided.

@mjsax mjsax added the streams label Mar 27, 2018
@mjsax mjsax requested review from dguy and guozhangwang March 27, 2018 03:49
@mjsax
Copy link
Copy Markdown
Member Author

mjsax commented Mar 27, 2018

This is the port of #4746 (0.10.1), #4758 (0.10.2), #4761 (0.11.0), #4768 (1.0), and #4773 (1.11) to trunk`.

Note: 1.0 was the first branch that did contain upgrade system tests already -- I just added the new once -- we can consider to consolidate them in this PR already. LMKWYT.

If we decide to cleanup tests in 1.0/1.1, those changes need to be added to this branch, too. System tests: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1605/

Note: we cannot add upgrade tests for 1.1 yet, as 1.1 is not released yet. I have a branch ready and will open PR after 1.1 is released to add those missing tests.

This PR does not implement KIP-268 completely, but only port parameter upgrade.from -- for new metadata version 3 and "version probing" there will be a separate PR (#4636).

\cc @bbejeck @vvcephei

@mjsax mjsax force-pushed the kafka-6054-fix-upgrade-trunk branch from f13fc13 to 41db9c6 Compare March 27, 2018 04:37
@guozhangwang
Copy link
Copy Markdown
Contributor

retest this please

Comment thread bin/kafka-run-class.sh Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just for my own education: why we want to only include example jars if it is not for upgrade tests?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We don't need them for upgrade test -- it's just to reduce CLASSPATH to the minimum for this case.

Comment thread docs/streams/upgrade-guide.html Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hmm.. seems this cherry-picking not correct, as it is for trunk the upgrade section should include for 1.2.0 right?

Comment thread docs/upgrade.html Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The title should still be Upgrading a 1.0.0 Kafka Streams Application?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actually I think the title was not consistent: previous the title of Upgrading a <XXX> version talks about how to upgrade from 's previous minor release to where here we are talking about upgrading from to 1.0.0.

How about rename the title to Upgrading to a 1.0.0 Kafka Streams Application, and use a sebsuction

for Upgrading from 0.11.0, and so on for the following sub sections.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, the "id" means upgrade to this version while the text means upgrade from this version. It's explained in the first bullet point below thought. I would prefer to do a separate PR if we want to rephrase -- this PR is already complex enough.

Comment thread docs/upgrade.html Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ditto as above.

Comment thread docs/upgrade.html Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto as above.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need to ignore this test as well?

Copy link
Copy Markdown
Member

@bbejeck bbejeck left a comment

Choose a reason for hiding this comment

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

Overall looks good, just a couple of minor comments/questions.

Comment thread docs/streams/upgrade-guide.html Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be to 1.2.0 ?

Comment thread docs/streams/upgrade-guide.html Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

references here to version 1.1.1 should these be 1.2.0?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This version of StreamsUpgradeTest doesn't have the upgraded from print statement, was that intentional? The other version have it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is intentional, because we now pass in upgrade.from via the propertiesFile and the prop file gets printed.

Copy link
Copy Markdown
Contributor

@vvcephei vvcephei left a comment

Choose a reason for hiding this comment

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

Just a couple of minor comments.

Comment thread docs/upgrade.html Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need "notable changes" for 1.2 as well?

Comment thread tests/docker/Dockerfile Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I guess we can add 1.1 now!

Comment thread vagrant/base.sh Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

we can also add 1.1 here.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I actually think, this is the root cause of the issue... Scala 2.12 required JDK8...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We cannot. Need to downgrade to 2.11 anyway. Also, we can only pick one Scala version as there is only one directory for the Kafka version. We would need to change a lot of stuff to encode the Scala version in the directory(structure) to support different version. Even if we want to do this, it would be a separate PR.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I didn't quite follow this. If you're saying that switching to scala 2.12 caused the runtime error about class version, that sounds about right.

But does this mean that we cannot add Kafka 1.1.x?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Sorry for the confusion -- my bad. We an add 1.1.x -- will update this PR after I merged the 1.1 PR and cherry-picked those latest changes.

@mjsax mjsax force-pushed the kafka-6054-fix-upgrade-trunk branch from cf05a96 to 4d8c7f6 Compare March 30, 2018 18:58
mjsax added 3 commits April 5, 2018 17:30
Update upgrade docs
Github comments
John's review
Guozhang's follow up
remove generics

move config

fix doc typos

remove generics

move config

Consolidating system tests

Addressed review comment

Update test-dev version to 1.1.1-SNAPSHOT

Change Scala Version

Add comments to vagrant/base.sh and update Scala versions for Dockerfile
@mjsax mjsax force-pushed the kafka-6054-fix-upgrade-trunk branch from 4d8c7f6 to 8e89c7a Compare April 6, 2018 05:22
@mjsax
Copy link
Copy Markdown
Member Author

mjsax commented Apr 6, 2018

Updated this PR and triggered system tests: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1660/

Note, this does only port the 1.1 branch PR but does not yet add new tests on purpose. Upgrading the metadata to version 3 will be a separate PR after this one is merged.

Copy link
Copy Markdown
Contributor

@dguy dguy left a comment

Choose a reason for hiding this comment

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

Just one super nit, otherwise LGTM

public class StreamsUpgradeTest {

/**
* This test cannot be run executed, as long as Kafka 0.10.1.2 is not released
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: "cannot be run" or "cannot be executed" same in other versions of this test

@mjsax
Copy link
Copy Markdown
Member Author

mjsax commented Apr 6, 2018

Rebasing broke the system tests. Pushed some fixed. Retriggered: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1664/ (passed)

@mjsax mjsax merged commit 0c0d836 into apache:trunk Apr 7, 2018
ying-zheng pushed a commit to ying-zheng/kafka that referenced this pull request Jul 6, 2018
Reviewers: Guozhang Wang <guozhang@confluent.io>, Bill Bejeck <bill@confluent.io>, John Roesler <john@confluent.io>, Damian Guy <damian@confluent.io>
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.

5 participants