[
https://issues.apache.org/jira/browse/CAMEL-23291?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-23291:
--------------------------------
Fix Version/s: 4.18.3
> EventHubs and Google PubSub consumers lack ShutdownAware support, causing
> potential message loss during graceful shutdown
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-23291
> URL: https://issues.apache.org/jira/browse/CAMEL-23291
> Project: Camel
> Issue Type: Bug
> Components: camel-azure-eventhubs, camel-google-pubsub
> Affects Versions: 4.18.1
> Reporter: Federico Mariani
> Priority: Minor
> Fix For: 4.18.3, 4.21.0
>
>
> _EventHubsConsumer_ and _GooglePubsubConsumer_ do not implement
> ShutdownAware. Both consumers close/stop their underlying client immediately
> in _doStop()_, without waiting for in-flight exchanges to complete. This is
> the same root cause that was fixed for ServiceBusConsumer in
> [CAMEL-23260|https://issues.apache.org/jira/browse/CAMEL-23260].
> When a SIGTERM is received while messages are being processed:
> - EventHubsConsumer.doStop() calls processorClient.stop() and sets it to null
> immediately
> - GooglePubsubConsumer.doStop() calls stopAsync() on all subscribers and
> shuts down the executor
> In both cases, in-flight exchanges may fail to ACK/NACK their messages
> because the underlying client connection is torn down before the exchange
> completion callbacks run. This can lead to message redelivery and duplicate
> processing.
> Both consumers should implement ShutdownAware following the pattern
> established in CAMEL-23260:
> - deferShutdown() should stop the message pump while keeping connections alive
> - getPendingExchangesSize() should track in-flight exchanges
> - Client resources should only be fully closed in doShutdown(), after all
> exchanges have drained
--
This message was sent by Atlassian Jira
(v8.20.10#820010)