You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "chillming (Jira)" <ji...@apache.org> on 2020/10/10 01:55:00 UTC
[jira] [Created] (CAMEL-15669) When the registry does not have any
nodes, ServiceCallDefinition will be blocked
chillming created CAMEL-15669:
---------------------------------
Summary: When the registry does not have any nodes, ServiceCallDefinition will be blocked
Key: CAMEL-15669
URL: https://issues.apache.org/jira/browse/CAMEL-15669
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 3.5.0
Reporter: chillming
Fix For: 3.6.0
Attachments: image-2020-10-10-09-40-28-603.png
module:
camel-cloud 3.5.0
stack:
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.await(DefaultAsyncProcessorAwaitManager.java:107)
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:85)
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41)
org.apache.camel.component.resilience4j.ResilienceProcessor$CircuitBreakerTask.call(ResilienceProcessor.java:418)
org.apache.camel.component.resilience4j.ResilienceProcessor$CircuitBreakerTask.call(ResilienceProcessor.java:399)
io.github.resilience4j.circuitbreaker.CircuitBreaker.lambda$decorateCallable$3(CircuitBreaker.java:700)
io.github.resilience4j.circuitbreaker.CircuitBreaker$$Lambda$1027/242448823.call(Unknown Source)
Related codes:
1、org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancer#process
when server is null,throw RejectedExecutionException:
throw new RejectedExecutionException("No active services with name " + serviceName);
2、org.apache.camel.impl.cloud.DefaultServiceCallProcessor#process
when catch Exception,we need “callback.done(true);” for CountDownLatch
!image-2020-10-10-09-40-28-603.png!
test code:
RouteDefinition definition = from("...");
CircuitBreakerDefinition circuitBreakerDefinition = definition
.circuitBreaker()
.resilience4jConfiguration(resilience4j)......
erviceCallDefinition serviceCallDefinition = processorDefinition
.serviceCall().name("test-app/api/test/hello");
//registry
ZooKeeperServiceCallServiceDiscoveryConfiguration conf =
new ZooKeeperServiceCallDiscoveryConfiguration(serviceCallDefinition)
.nodes("...").basePath("...").connectionTimeout("7000").sessionTimeout("60000");
serviceCallDefinition.setServiceDiscoveryConfiguration(conf);
//end
serviceCallDefinition.end();
--
This message was sent by Atlassian Jira
(v8.3.4#803005)