rabbitmq-server icon indicating copy to clipboard operation
rabbitmq-server copied to clipboard

Convert AMQP 1.0 props and app props to AMQP 0.9.1 props and headers (backport #10037)

Open mergify[bot] opened this issue 1 year ago • 1 comments

Hi,

As requested in https://github.com/rabbitmq/rabbitmq-server/pull/10022 this is a backport to 3.12.x.

The configuration option was removed and now all the properties are always converted to headers or other appropriate properties. The priority was moved to the Header section according to AMQP 1.0 (section 3.2.1)

  • Timestamps are milliseconds in AMQP 1.0, but in AMQP 0.9.1 it is seconds. Fixed by multiplying the timestamp by 1 000.
  • Shovel crashed if user_id was set in the message because the encoding was as utf8 while it should be a byte array.
  • Negative integers were encoded as integers - therefore leading to incorrect positive values.
  • Float values were not supported by the client.
  • Fixed priority header encoding in AMQP 1.0. It was set as uint but it should be ubyte.
  • Priority of the message is now in the Headers instead of Application Properties. This is potentially a breaking change.

Fixes: #7508

Types of Changes

What types of changes does your code introduce to this project? Put an x in the boxes that apply

  • [x] Bug fix (non-breaking change which fixes issue #NNNN)
  • [x] New feature (non-breaking change which adds functionality)
  • [x] Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • [ ] Documentation improvements (corrections, new content, etc)
  • [ ] Cosmetic change (whitespace, formatting, etc)
  • [ ] Build system and/or CI

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask on the mailing list. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • [x] I have read the CONTRIBUTING.md document
  • [x] I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq)
  • [x] I have added tests that prove my fix is effective or that my feature works
  • [x] All tests pass locally with my changes
  • [ ] If relevant, I have added necessary documentation to https://github.com/rabbitmq/rabbitmq-website
  • [ ] If relevant, I have added this change to the first version(s) in release-notes that I expect to introduce it

This is an automatic backport of pull request #10037 done by [Mergify](https://mergify.com).

mergify[bot] avatar Jul 16 '24 15:07 mergify[bot]