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)