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 2018/03/20 06:03:00 UTC

[jira] [Updated] (CAMEL-12367) camel-aws - aws-s3 - Thread leak in pollEnrich with dynamic uri

     [ https://issues.apache.org/jira/browse/CAMEL-12367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen updated CAMEL-12367:
--------------------------------
    Fix Version/s: 2.22.0

> camel-aws - aws-s3 - Thread leak in pollEnrich with dynamic uri
> ---------------------------------------------------------------
>
>                 Key: CAMEL-12367
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12367
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.19.2
>            Reporter: Damien B
>            Priority: Major
>             Fix For: 2.22.0
>
>
> In a route we have this snippet:
> {code:java}
> <pollEnrich>
>  <simple>aws-s3://{{AWS_BUCKET_NAME_DOWNLOAD}}?amazonS3Client=#amazonS3Client&amp;deleteAfterRead=false&amp;prefix=${body.key}</simple>
> </pollEnrich>{code}
> This is used to download one specific file from a bucket. Every time this is called, the endpoint URI changes because ${body.key} is constantly changing.
>  
> In ScheduledPollConsumer we have this:
> {code:java}
> public long beforePoll(long timeout) throws Exception {
>  if (!ServiceHelper.resumeService(this)) {
>  	ServiceHelper.startService(this);
>  }
>  return Math.max(timeout, getDelay());
> }
> public void afterPoll() throws Exception {
>  if (!ServiceHelper.suspendService(this)) {
> 	 ServiceHelper.stopService(this);
>  }
> }
> {code}
>  
> Since S3Consumer is a Suspendable, the thread created by ServiceHelper.startService is never going to be killed, and since it's never going to be reused because we'll never have twice the same endpoint URI, eventually the application dies because of the rogue threads.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)