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

ASF GitHub Bot commented on CURATOR-126:
----------------------------------------

Github user Randgalt commented on a diff in the pull request:

    https://github.com/apache/curator/pull/23#discussion_r15488051
  
    --- Diff: 
curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
 ---
    @@ -74,7 +71,7 @@
         private final NamespaceFacadeCache namespaceFacadeCache;
         private final NamespaceWatcherMap namespaceWatcherMap = new 
NamespaceWatcherMap(this);
     
    -    private volatile ExecutorService executorService;
    +    private volatile Thread backgroundThread;
    --- End diff --
    
    I'm just concerned it's a larger problem. Executors are used throughout 
Curator and I've relied on shutdownNow to work correctly. I didn't know about 
the bug. So, I'd feel better having an open issue to deal with it directly. 
Curator already has the CloseableExecutorService wrapper and my gut feeling is 
that it can be fixed inside of there.


> IllegalStateException in performBackgroundOperation during close
> ----------------------------------------------------------------
>
>                 Key: CURATOR-126
>                 URL: https://issues.apache.org/jira/browse/CURATOR-126
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 2.5.0
>            Reporter: Scott Blum
>            Assignee: Cameron McKenzie
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> {code}
> [CuratorFramework-0] ERROR 
> org.apache.curator.framework.imps.CuratorFrameworkImpl  - Background 
> exception was not retry-able or retry gave up
> java.lang.IllegalStateException: Client is not started
>       at 
> com.google.common.base.Preconditions.checkState(Preconditions.java:176)
>       at 
> org.apache.curator.CuratorZookeeperClient.getZooKeeper(CuratorZookeeperClient.java:113)
>       at 
> org.apache.curator.framework.imps.CuratorFrameworkImpl.performBackgroundOperation(CuratorFrameworkImpl.java:807)
>       at 
> org.apache.curator.framework.imps.CuratorFrameworkImpl.backgroundOperationsLoop(CuratorFrameworkImpl.java:793)
>       at 
> org.apache.curator.framework.imps.CuratorFrameworkImpl.access$400(CuratorFrameworkImpl.java:57)
>       at 
> org.apache.curator.framework.imps.CuratorFrameworkImpl$4.call(CuratorFrameworkImpl.java:275)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:744)
> {code}
> I see this sometimes during test runs; I believe this happens because 
> CuratorZookeeperClient.started gets set to false during shutdown, but the 
> backgroundOperation loop can still be running since shutting down the 
> backgroundOperation loop is inherently racy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to