quarkus: Quarkus 1.3: Smallrye AMQP not working with RabbitMQ any more, address undefined

Describe the bug I try sending a simple message with the quarkus-smallrye-reactive-messaging-amqp extension via an Emitter<String>. On the sender side, there is no indication that something went wrong. However, the rabbitmq container displays the following exception

{'v1_0.error',{symbol,<<"amqp:invalid-field">>},{utf8,<<"Attach rejected: {address_not_utf8_string,undefined}">>},undefined}

The same code works with Quarkus 1.2.1.Final.

Expected behavior

  • Should work as before.
  • When message cannot be sent into queue, I would expect an error. If I add an exceptionally handler to the returned CompletionStage, it is also never called.

Actual behavior Queue cannot accept message and no error is displayed.

To Reproduce Steps to reproduce the behavior:

  1. Download reproducer reproducer-smallrye-amqp-emitter-not-working.zip and unzip it.
  2. Run docker-compose up -d in the extracted directory.
  3. Start quarkus with ./mvnw compile quarkus:dev
  4. Call GET localhost:8080/hello
  5. No error in quarkus console. But the error shown above is displayed in the rabbitmq container log.

Environment (please complete the following information):

  • Quarkus 1.3.0.Final
  • Windows 10
  • RabbitMQ 3.8.3

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 2
  • Comments: 22 (19 by maintainers)

Most upvoted comments

@geoand @cescoffier: Sorry, I forgot to include them RabbitMQ with AMQP 1.0 plugin enabled. I’ll update the reproduce soon.

The error messages can be resolved by updating your configuration to disable anonymous sender: mp.messaging.outgoing.{channel-name}.use-anonymous-sender=false

However, this results in all messages being sent to the default AMQP exchange on RabbitMQ. The target exchange (address) is completely ignored, which makes it unusable in my case. Is there any way around this, @cescoffier? Or do you have any indication on where to start if we want to resolve this?

@gemmellr @geoand: Any idea what we could do? Can you give me a hint where I would need to change something to make this work again. Maybe I can provide a PR.