[
https://issues.apache.org/jira/browse/CAMEL-17911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-17911.
---------------------------------
Resolution: Fixed
Thanks for fixing this
> camel-olingo2 : I/O Dispatcher threads leak
> -------------------------------------------
>
> Key: CAMEL-17911
> URL: https://issues.apache.org/jira/browse/CAMEL-17911
> Project: Camel
> Issue Type: Bug
> Components: camel-olingo2
> Affects Versions: 3.16.0
> Reporter: Twinkle Shah
> Assignee: Karen Lease
> Priority: Major
> Fix For: 3.14.4, 3.18.0
>
> Attachments: CamelOData.zip
>
>
> Discussion thread:
> [https://camel.zulipchat.com/#narrow/stream/257298-camel/topic/camel-olingo2.20.3A.20I.2FO.20Dispatcher.20threads.20leak]
>
> Details:
> While using camel-onlingo2 to read from ODataV2 endpoint in Java, the "I/O
> Dispatcher" threads are left running even after closing the camel context.
> Camel version: 3.15.0/3.16.0
> With camel version 2.24.1, the issue was not reproducible.
> Attaching a demo project to show the issue. Run ODataReaderTest.java to
> reproduce the issue
> [^CamelOData.zip]
> -> With 3.15.0/3.16.0 version, there are 12 I/O Dispatcher threads which
> keeps running after every execution. So, every time the odata call is made
> the *number of left over threads are piling up. This is eating up the
> resources on the server.*
> -> If camel version is changed to 2.24.1 ( build.gradle file, change value of
> camelVersion ), then with camel context stop, all the I/O Dispatcher threads
> are also closed. The same test case (ODataReaderTest) will pass with 2.24.1
> version.
> *Analysis:*
> The below code is getting called twice for every execution and because of the
> IF condition multiple instances of Olingo2AppWrapper (apiProxy) are getting
> created.
> [https://github.com/apache/camel/blob/camel-3.15.0/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java#L121]
> And each of this instance creates 12 I/O Dispatcher threads. When camel
> context is closed only one of the instance of apiProxy ( the one which is
> created last) is closed, which leaves threads created by first instance as it
> is in RUNNING state.
> With older version (2.24.1), only one instance of Olingo2AppWrapper
> (apiProxy) was getting created.
> There is configuration variable defined in newer version which didn't exist
> in older version. This seems to be impacting the IF conditions and leading to
> multiple apiProxy instances.
> Olingo2Configuration configuration;
--
This message was sent by Atlassian Jira
(v8.20.7#820007)