You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/10/06 05:46:00 UTC

[jira] [Created] (CAMEL-25365) camel-core - a dev mode reload that cuts off in-flight exchanges says where they were waiting, and does not log them as unexplained errors

Claus Ibsen created CAMEL-25365:
-----------------------------------

             Summary: camel-core - a dev mode reload that cuts off in-flight exchanges says where they were waiting, and does not log them as unexplained errors
                 Key: CAMEL-25365
                 URL: https://issues.apache.org/jira/browse/CAMEL-25365
             Project: Camel
          Issue Type: Improvement
          Components: camel-core
            Reporter: Claus Ibsen


In dev mode a route file is reloaded while messages are in flight. When the in-flight exchanges are blocked, for example on a {{direct:}} endpoint whose consumer is part of the same edit, the reload waits for the graceful shutdown timeout, forces the shutdown, and the interrupted exchanges are logged as errors:

{noformat}INFO  DefaultShutdownStrategy : Waiting as there are still 2 inflight and pending exchanges to complete, timeout in 5 seconds. Inflights per route: [picked-lines = 2]
... (once per second)
WARN  DefaultShutdownStrategy : Timeout occurred during graceful shutdown. Forcing the routes to be shutdown now. ...
INFO  DirectProducer : Interrupted while processing the exchange
ERROR DefaultErrorHandler : Failed delivery for (...) at picked-lines[log2] aggregator.camel.yaml:23. Exhausted after delivery attempt: 1 caught: java.util.concurrent.RejectedExecutionException{noformat}

Nothing in the log says what the exchanges were waiting on, and the ERROR with a RejectedExecutionException looks like a bug in the route, while it is the reload cutting them off. Found in the local-model benchmark (r5, route-aggregator step 1: the model added {{to: direct:shipment}} and the aggregator route that consumes it; 3 of 5 runs logged the errors). A person editing a route in dev mode meets the same thing.

Proposals, to be weighed:
* The shutdown wait message names where the in-flight exchanges are, for example the endpoint or processor they are blocked in ("waiting at direct:shipment").
* An exchange that the reload's forced shutdown interrupts is logged as a WARN that says so ("interrupted by the route reload"), not as an unexplained ERROR with a RejectedExecutionException.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)