[jira] [Created] (CAMEL-8039) Implement halfOpen state in CircuitBreaker
Matteo Pavesi created CAMEL-8039: Summary: Implement halfOpen state in CircuitBreaker Key: CAMEL-8039 URL: https://issues.apache.org/jira/browse/CAMEL-8039 Project: Camel Issue Type: Improvement Components: camel-core Reporter: Matteo Pavesi Priority: Trivial Fix For: 2.14.1 The CircuitBreaker EIP described in ReleaseIt! has an halfOpen state. It means that after the halfOpen time timeout, the circuitBreaker is accepting one more exchange and it close the circuit only if the processor succeeds. This is not implemented in Camel, I would like to propose the attached patch with code and test for implementing the HalfOpen state. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CAMEL-8039) Implement halfOpen state in CircuitBreaker
[ https://issues.apache.org/jira/browse/CAMEL-8039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14207931#comment-14207931 ] Matteo Pavesi commented on CAMEL-8039: -- Improvement for the camel CircuitBreaker EIP implementation Implement halfOpen state in CircuitBreaker -- Key: CAMEL-8039 URL: https://issues.apache.org/jira/browse/CAMEL-8039 Project: Camel Issue Type: Improvement Components: camel-core Reporter: Matteo Pavesi Priority: Trivial Fix For: 2.14.1 The CircuitBreaker EIP described in ReleaseIt! has an halfOpen state. It means that after the halfOpen time timeout, the circuitBreaker is accepting one more exchange and it close the circuit only if the processor succeeds. This is not implemented in Camel, I would like to propose the attached patch with code and test for implementing the HalfOpen state. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8039) Implement halfOpen state in CircuitBreaker
[ https://issues.apache.org/jira/browse/CAMEL-8039?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Matteo Pavesi updated CAMEL-8039: - Attachment: 0001-halfOpen-state-in-CircuitBreaker.patch The proposed implementation and testing Implement halfOpen state in CircuitBreaker -- Key: CAMEL-8039 URL: https://issues.apache.org/jira/browse/CAMEL-8039 Project: Camel Issue Type: Improvement Components: camel-core Reporter: Matteo Pavesi Priority: Trivial Fix For: 2.14.1 Attachments: 0001-halfOpen-state-in-CircuitBreaker.patch The CircuitBreaker EIP described in ReleaseIt! has an halfOpen state. It means that after the halfOpen time timeout, the circuitBreaker is accepting one more exchange and it close the circuit only if the processor succeeds. This is not implemented in Camel, I would like to propose the attached patch with code and test for implementing the HalfOpen state. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CAMEL-7973) CircuitBreakerLoadBalancer fails on async processors
[ https://issues.apache.org/jira/browse/CAMEL-7973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14189924#comment-14189924 ] Matteo Pavesi commented on CAMEL-7973: -- Thanks for the interest in this issue and for the quick change. I've also learned something from the fix to my patch :) CircuitBreakerLoadBalancer fails on async processors Key: CAMEL-7973 URL: https://issues.apache.org/jira/browse/CAMEL-7973 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.14.0 Reporter: Matteo Pavesi Assignee: Willem Jiang Priority: Minor Fix For: 2.14.1, 2.15.0 Attachments: 0001-CAMEL-7973-added-failing-test-for-circuit-breaker-wi.patch, 0002-CAMEL-7973-fix-circuit-breaker-with-async-processors.patch The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. EDIT: the patch contains the fix also to other unexpected behaviour of the CircuitBreaker. The second problem addressed is that, after the opening of the circuit, the RejectedExecutionException raised by the circuit breaker is set in the Exchange, but it doesn't return. This cause the processor will receive the Exchange even if the circuit is open. In this case also, if the CircuitBreaker is instructed to react only to specific Exception, it will close the circuit after the following request, because the raised exception would be a RejectedExecutionException instead of the one specified in the configuration. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-7973) CircuitBreakerLoadBalancer fails on async processors
[ https://issues.apache.org/jira/browse/CAMEL-7973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Matteo Pavesi updated CAMEL-7973: - Description: The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. EDIT: the patch contains the fix also to other unexpected behaviour of the CircuitBreaker. The second problem addressed is that, after the opening of the circuit, the RejectedExecutionException raised by the circuit breaker is set in the Exchange, but it doesn't return. This cause the processor will receive the Exchange even if the circuit is open. In this case also, if the CircuitBreaker is instructed to react only to specific Exception, it will close the circuit after the following request, because the raised exception would be a RejectedExecutionException instead of the one specified in the configuration. was: The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. CircuitBreakerLoadBalancer fails on async processors Key: CAMEL-7973 URL: https://issues.apache.org/jira/browse/CAMEL-7973 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.14.0 Reporter: Matteo Pavesi Priority: Minor Attachments: 0001-CAMEL-7973-added-failing-test-for-circuit-breaker-wi.patch, 0002-CAMEL-7973-fix-circuit-breaker-with-async-processors.patch The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. EDIT: the patch contains the fix also to other unexpected behaviour of the CircuitBreaker. The second problem addressed is that, after the opening of the circuit, the RejectedExecutionException raised by the circuit breaker is set in the Exchange, but it doesn't return. This cause the processor will receive the Exchange even if the circuit is open. In this case also, if the CircuitBreaker is instructed to react only to specific Exception, it will close the circuit after the following request, because the raised exception would be a RejectedExecutionException instead of the one specified in the configuration. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CAMEL-7973) CircuitBreakerLoadBalancer fails on async processors
Matteo Pavesi created CAMEL-7973: Summary: CircuitBreakerLoadBalancer fails on async processors Key: CAMEL-7973 URL: https://issues.apache.org/jira/browse/CAMEL-7973 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.14.0 Reporter: Matteo Pavesi Priority: Minor The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to submit a pull request with the failing test and a proposal of solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-7973) CircuitBreakerLoadBalancer fails on async processors
[ https://issues.apache.org/jira/browse/CAMEL-7973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Matteo Pavesi updated CAMEL-7973: - Description: The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. was: The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to submit a pull request with the failing test and a proposal of solution. CircuitBreakerLoadBalancer fails on async processors Key: CAMEL-7973 URL: https://issues.apache.org/jira/browse/CAMEL-7973 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.14.0 Reporter: Matteo Pavesi Priority: Minor The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-7973) CircuitBreakerLoadBalancer fails on async processors
[ https://issues.apache.org/jira/browse/CAMEL-7973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Matteo Pavesi updated CAMEL-7973: - Attachment: 0002-CAMEL-7973-fix-circuit-breaker-with-async-processors.patch 0001-CAMEL-7973-added-failing-test-for-circuit-breaker-wi.patch Patches (based on branch 2.14.x) containing failing test and proposed solution. CircuitBreakerLoadBalancer fails on async processors Key: CAMEL-7973 URL: https://issues.apache.org/jira/browse/CAMEL-7973 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.14.0 Reporter: Matteo Pavesi Priority: Minor Attachments: 0001-CAMEL-7973-added-failing-test-for-circuit-breaker-wi.patch, 0002-CAMEL-7973-fix-circuit-breaker-with-async-processors.patch The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CAMEL-7973) CircuitBreakerLoadBalancer fails on async processors
[ https://issues.apache.org/jira/browse/CAMEL-7973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14185291#comment-14185291 ] Matteo Pavesi edited comment on CAMEL-7973 at 10/27/14 4:10 PM: Added patches (based on branch 2.14.x) containing failing test and proposed solution. was (Author: matteo pavesi): Patches (based on branch 2.14.x) containing failing test and proposed solution. CircuitBreakerLoadBalancer fails on async processors Key: CAMEL-7973 URL: https://issues.apache.org/jira/browse/CAMEL-7973 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.14.0 Reporter: Matteo Pavesi Priority: Minor Attachments: 0001-CAMEL-7973-added-failing-test-for-circuit-breaker-wi.patch, 0002-CAMEL-7973-fix-circuit-breaker-with-async-processors.patch The CircuitBreakerLoadBalancer works fine on direct synchronous processor, but it seems to not behave as expected in case of async processor. To reproduce the error, it's enough to add a .threads(1) before the mock processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration. This misbehaviour seems to be related to the use of the AsyncProcessorConverterHelper to force any processor to behave like asynchronous. I'm going to propose a patch with the failing test and a proposal of solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)