zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "wu wen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ZOOKEEPER-1816) ClientCnxn.close() should block until threads have died
Date Tue, 08 Nov 2016 03:37:58 GMT

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

wu wen updated ZOOKEEPER-1816:
    Attachment: ZOOKEEPER-1816.patch

> ClientCnxn.close() should block until threads have died
> -------------------------------------------------------
>                 Key: ZOOKEEPER-1816
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1816
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.3.6, 3.4.5
>            Reporter: Jared Winick
>            Priority: Minor
>         Attachments: ZOOKEEPER-1816.patch
> In the testing of ACCUMULO-1379 and ACCUMULO-1858 it was seen that the non-blocking behavior
of ClientCnxn.close(), and therefore ZooKeeper.close(), can cause a race condition when undeploying
an application running in a Java container such as JBoss or Tomcat. As the close() method
returns without joining on the sendThread and eventThread, those threads continue to execute/cleanup
while the container is cleaning up the application's resources. If the container has unloaded
classes by the time this code runs
> {code}
> ZooTrace.logTraceMessage(LOG, ZooTrace.getTextTraceLevel(), "SendThread exitedloop.");
> {code}
> A "java.lang.NoClassDefFoundError: org/apache/zookeeper/server/ZooTrace" can be seen.

This message was sent by Atlassian JIRA

View raw message