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

Issue 11338: add documentation about the upgrade of Pulsar 2.8.0 #11392

Merged
merged 3 commits into from
Aug 11, 2021

Conversation

eolivelli
Copy link
Contributor

@eolivelli eolivelli commented Jul 20, 2021

Fixes #11338.
Add a note in the "Release notes" about how to fix the IncompatibleClassChange.

@eolivelli eolivelli added this to the 2.9.0 milestone Jul 20, 2021
@eolivelli eolivelli self-assigned this Jul 20, 2021
@eolivelli eolivelli force-pushed the site/upgrade280-functions branch from d5fd462 to 8bc86f3 Compare July 20, 2021 12:47
Copy link
Member

@Anonymitaet Anonymitaet left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution!

@Anonymitaet Anonymitaet added the doc Your PR contains doc changes, no matter whether the changes are in markdown or code files. label Jul 21, 2021
Due to a breaking change in the Schema API it may happen that some Pulsar Functions or Pulsar IO Connector fail to work,
throwing an `IncompatibleClassChangeError`.
In this case you have to rebuild your Function using Apache Pulsar 2.8.0 as dependency and redeploy it.
If you are running on Kubernetes you can temporarily let the Functions Worker pod run with a previous version of Pulsar
Copy link
Contributor

@freeznet freeznet Jul 21, 2021

Choose a reason for hiding this comment

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

From my understanding, for Kubernetes users, we need to take into account the runtime which users using. If users use thread or process runtime, then they should keep functions worker pod with a previous version of Pulsar. If users use Kubernetes runtime, they should keep the functionRuntimeFactoryConfigs.functionDockerImages or functionRuntimeFactoryConfigs.pulsarDockerImageName with previous version of Pulsar in functions_worker.yml as well, because by default it will use apachepulsar/pulsar:latest.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

even this is technically possible,
it is not simple to configure this parameter in a multi tenant environment, it is practically impossible, because you have to take care of the placement of the functions for each tenant.

Also we do not guarantee (it is not stated anywhere and there is no testcase) that the 'function worke' is able to work with a more recent version of the broker or of the other components.
In practice if you upgrade from 2.7.x to 2.8.x you can keep the function pods at version Pulsar 2.7.x, but this is not something that I would recommend to the public audience, as it needs some advanced knowledge of Pulsar internals

if the default is 'apachepulsar/pulsar:latest' this is kind of a bad problem, because in this case everything may break without notice.
if you are using the official Apache Pulsar Helm Chart we are setting properly the version

does this make sense to you @freeznet ?

@bixinyu
Copy link

bixinyu commented Jul 21, 2021

@Anonymitaet Stable version could use production environment wish recommended,It is better to have installation and deployment documentation in Chinese,many thanks,Technical documentation little sister

@eolivelli eolivelli requested a review from Anonymitaet July 22, 2021 16:05
@eolivelli
Copy link
Contributor Author

@freeznet @Anonymitaet PTAL again,
we should deliver this doc as soon as possible

1 similar comment
@eolivelli
Copy link
Contributor Author

@freeznet @Anonymitaet PTAL again,
we should deliver this doc as soon as possible

@eolivelli eolivelli merged commit efe2d3c into apache:master Aug 11, 2021
@eolivelli eolivelli deleted the site/upgrade280-functions branch August 11, 2021 11:51
bharanic-dev pushed a commit to bharanic-dev/pulsar that referenced this pull request Mar 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc Your PR contains doc changes, no matter whether the changes are in markdown or code files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Pulsar Functions and IO] Cannot upgrade Function built for Pulsar 2.7 to Pulsar 2.8
4 participants