[ https://issues.apache.org/jira/browse/ZOOKEEPER-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12892500#action_12892500 ]
Mahadev konar commented on ZOOKEEPER-783: ----------------------------------------- +1 the patch looks good! > 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.