[
https://issues.apache.org/jira/browse/CAMEL-5282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Cifer updated CAMEL-5282:
-------------------------------
Description:
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
was:
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.
> 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
--
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