camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Cifer (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CAMEL-5282) Strange race condition in for SEDA, when shutting down in Camel 2.9.1
Date Sat, 19 May 2012 17:11:41 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-5282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13279587#comment-13279587
] 

David Cifer edited comment on CAMEL-5282 at 5/19/12 5:11 PM:
-------------------------------------------------------------

Got the idea from the book :-). I used the latch solution on a project, but I was allowed
to modify the application lifecycle logic...

I try to implement server applications, with camel... but the requirements most of the time
is a short running feed applications... maybe a reusable but properly implemented shutdown
component would be handy :-)
                
      was (Author: edvicif):
    Got the idea from the book :-). I used the latch solution on a project, but I was allowed
to modify the application life cycle logic...

I try to implement server applications, with camel... but the requirements most of the time
is a short running feed applications... maybe a reusable but properly implemented shutdown
component would be handy :-)
                  
> Strange race condition in for SEDA, when shutting down in Camel 2.9.1
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-5282
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5282
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.9.1
>         Environment: Windows XP, jdk1.6.0_29
>            Reporter: David Cifer
>            Priority: Critical
>         Attachments: SedaTimeoutTest.java, TimeoutSetToDefault30SecSedaTimeoutTest.java
>
>
> We have file endpoints, with idemptotent file repository feeds into a SEDA chanel.
> Behind the SEDA is a solution, which can only deal one file at a time.
> If the system some reason shutdowns, than on restart we shouldn't consume already consumed
files.
> If exception occurs, we shutdown our application.
> This behaviour assured by a unit test, which begin to fail when we introduce timeout=0
configuration.
> Here is the pseudo code:
> onException(RuntimeException.class).process(new ShutDown());
>         
> from("file:/tempfolder/files/?idempotent=true&noop=true&idempotentRepository=#repo&delay=1000")
>             .inOut("seda:process?timeout=0");
>         
> from("seda:process").delay(1000).throwException(new RuntimeException("Testing with exception"));
> I use inOut so the file thread, waits for SEDA to acomplish. This serves as there is
an exception happens behind seda side, by using DefaultErrorHandler strategy it propagates
back to file endpoint and the sent file, won't be marked consumed.
> With 2.9.1 the files marked as consumed (meaning recorded in the idempotent repository)
90% of the times. I say % because sometimes the test passes without any issue. On 2.9.0 I
wasn't able to reproduce the error.
> NOTE: When you remove the timeout, than behaviour will be fine
> So on 2.9.0 and 2.9.1 with positive timeout there is no issue.
> In 2.9.1 timeout < 1 there is issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message