-
Notifications
You must be signed in to change notification settings - Fork 189
Description
I have an Emitter defined like this:
@OnOverflow(OnOverflow.Strategy.NONE)
@Inject @Channel( "utility-amqp" )
Emitter<String> utilityEmitter;
The channel is outgoing using AMQP connector and the target is an address in external ActiveMQ Artemis broker.
If I have understood correctly, with OnOverflow.Strategy.NONE there is no buffer and the Emitter will always send the message without worrying about backpressure. However, if the Artemis broker is restarted and the connection lost, upon reconnect the Emitter fails with io.smallrye.mutiny.subscription.BackPressureFailure: Buffer full, cannot emit item. How is this possible? Looks like the overflow strategy is ignored after reconnect.
EDIT: Forgot to add that it stays stuck like that forever until restart even if the broker is reconnected.
Relevant parts of log:
ERROR [io.smallrye.reactive.messaging.amqp] (vert.x-eventloop-thread-0) SRMSG16214: AMQP Connection failure: java.lang.Exception: Connection disconnected
INFO [io.smallrye.reactive.messaging.amqp] (pool-12-thread-1) SRMSG16212: Establishing connection with AMQP broker
ERROR [io.smallrye.reactive.messaging.amqp] (vert.x-eventloop-thread-6) SRMSG16215: Unable to connect to the broker, retry will be attempted: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused:
INFO [io.smallrye.reactive.messaging.amqp] (pool-12-thread-1) SRMSG16212: Establishing connection with AMQP broker
INFO [io.smallrye.reactive.messaging.amqp] (vert.x-eventloop-thread-6) SRMSG16213: Connection with AMQP broker established
ERROR [io.vertx.core.impl.ContextImpl] (vert.x-eventloop-thread-7) Unhandled exception: java.lang.IllegalStateException: send not allowed after the sender is closed.
ERROR [io.smallrye.reactive.messaging.amqp] (EJB default - 1) SRMSG16225: Failure reported for channel utility-amqp
, closing client: io.smallrye.mutiny.subscription.BackPressureFailure: Buffer full, cannot emit item
java.lang.Exception: Missing onFailure/onError handler in the subscriber
Caused by: io.smallrye.mutiny.subscription.BackPressureFailure: Buffer full, cannot emit item