[
https://issues.apache.org/jira/browse/CAMEL-24146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-24146:
-----------------------------------
Assignee: Claus Ibsen
> camel-saga: InMemorySagaCoordinator creates a FluentProducerTemplate per
> compensation/completion attempt and never stops it
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24146
> URL: https://issues.apache.org/jira/browse/CAMEL-24146
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Federico Mariani
> Assignee: Claus Ibsen
> Priority: Major
>
> h3. Problem
> {{InMemorySagaCoordinator.doFinalize}} creates a new template for *every*
> endpoint invocation, including every retry
> (core/camel-support/src/main/java/org/apache/camel/saga/InMemorySagaCoordinator.java:199):
> {code:java}
> Exchange res =
> camelContext.createFluentProducerTemplate().to(endpoint).withExchange(target).send();
> {code}
> The {{CamelContext.createFluentProducerTemplate()}} javadoc is explicit:
> "Make sure to call stop() when you are done using the template, to clean up
> any resources". The template is started, carries a producer cache (default
> max 1000), and is never stopped.
> h3. Consequence
> Every finalized saga step leaks one (or more, with retries) started service.
> Combined with the coordinator map leak this makes the in-memory saga service
> unsuitable for long-running production use.
> h3. Suggested fix
> Create one template per coordinator (or per saga service), reuse it for all
> finalization calls, and stop it when the coordinator/service is done.
> Found during a broader Saga EIP / camel-lra code review (July 2026).
> _Claude Code on behalf of Croway_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)