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

Fix backwards-incompatible protocol version bump #9954

Merged
merged 3 commits into from
Aug 4, 2022

Conversation

lenaschoenburg
Copy link
Member

@lenaschoenburg lenaschoenburg commented Aug 2, 2022

Description

This splits the protocol based on usage and reverts the version bump in protocol.xml.

Related issues

closes #9949

Definition of Done

Not all items need to be done depending on the issue and the pull request.

Code changes:

  • The changes are backwards compatibility with previous versions
  • If it fixes a bug then PRs are created to backport the fix to the last two minor versions. You can trigger a backport by assigning labels (e.g. backport stable/1.3) to the PR, in case that fails you need to create backports manually.

Testing:

  • There are unit/integration tests that verify all acceptance criterias of the issue
  • New tests are written to ensure backwards compatibility with further versions
  • The behavior is tested manually
  • The change has been verified by a QA run
  • The impact of the changes is verified by a benchmark

Documentation:

  • The documentation is updated (e.g. BPMN reference, configuration, examples, get-started guides, etc.)
  • New content is added to the release announcement
  • If the PR changes how BPMN processes are validated (e.g. support new BPMN element) then the Camunda modeling team should be informed to adjust the BPMN linting.

Please refer to our review guidelines.

@github-actions
Copy link
Contributor

github-actions bot commented Aug 2, 2022

Test Results

   800 files  ±    0         1 errors  799 suites  ±0   1h 44m 37s ⏱️ + 10m 3s
6 329 tests +285  6 320 ✔️ +285  9 💤 ±0  0 ±0 
6 515 runs  +285  6 506 ✔️ +285  9 💤 ±0  0 ±0 

For more details on these parsing errors, see this check.

Results for commit b757ceb. ± Comparison against base commit b3cff93.

♻️ This comment has been updated with latest results.

@lenaschoenburg
Copy link
Member Author

@deepthidevaki So @npepinpe and I talked about potential tests a bit more and came to the conclusion that we don't need them for now. The reason is a mixture of

  1. This should work, decoding of ExporterPositions does not check the schema/template
  2. Even if it doesn't, it isn't critical because it doesn't prevent a rolling upgrade.
  3. Acceptance tests would be very hacky.

I'll create follow-up issues that will allow us to write acceptance tests in the future.

@npepinpe
Copy link
Member

npepinpe commented Aug 3, 2022

To clarify, I think they would be hacky now because you would need to observe that compaction did not occur (since the exporter position is not propagated), and at the moment you need knowledge of the file system layout to do that. Hopefully we have better monitoring tools in the future and we can write such tests :)

But Ole's main point stands, as this doesn't prevent rolling update (only possibly prevents compaction while an update is ongoing and also possibly generates error), this is probably not critical enough to warrant more effort 👍

Copy link
Contributor

@deepthidevaki deepthidevaki left a comment

Choose a reason for hiding this comment

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

Great! Thanks for doing this 👍

@lenaschoenburg
Copy link
Member Author

bors r+

@zeebe-bors-camunda
Copy link
Contributor

Build succeeded:

@zeebe-bors-camunda zeebe-bors-camunda bot merged commit 2c1a9d6 into main Aug 4, 2022
@zeebe-bors-camunda zeebe-bors-camunda bot deleted the 9949-protocol-version-fix branch August 4, 2022 07:52
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.

RuntimeException: Cannot handle event with version newer than what is implemented by broker (4 > 3)
3 participants