[ https://issues.apache.org/jira/browse/ZOOKEEPER-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12892746#action_12892746 ]
Hudson commented on ZOOKEEPER-783: ---------------------------------- Integrated in ZooKeeper-trunk #887 (See [http://hudson.zones.apache.org/hudson/job/ZooKeeper-trunk/887/]) ZOOKEEPER-783. committedLog in ZKDatabase is not properly synchronized (henry via mahadev) > committedLog in ZKDatabase is not properly synchronized > ------------------------------------------------------- > > Key: ZOOKEEPER-783 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-783 > Project: Zookeeper > Issue Type: Bug > Components: server > Affects Versions: 3.3.1 > Reporter: Henry Robinson > Assignee: Henry Robinson > Priority: Critical > Fix For: 3.3.2, 3.4.0 > > Attachments: ZOOKEEPER-783.patch > > > ZKDatabase.getCommittedLog() returns a reference to the LinkedList<Proposal> > committedLog in ZKDatabase. This is then iterated over by at least one > caller. > I have seen a bug that causes a NPE in LinkedList.clear on committedLog, > which I am pretty sure is due to the lack of synchronization. This bug has > not been apparent in normal ZK operation, but in code that I have that starts > and stops a ZK server in process repeatedly (clear() is called from > ZooKeeperServerMain.shutdown()). > It's better style to defensively copy the list in getCommittedLog, and to > synchronize on the list in ZKDatabase.clear. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.