Github user anmolnar commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/300#discussion_r154363054
--- Diff:
src/java/main/org/apache/zookeeper/server/quorum/CommitProcessor.java ---
@@ -327,6 +257,95 @@ public void run() {
LOG.info("CommitProcessor exited loop!");
}
+ private void processCommittedRequest() throws IOException,
InterruptedException {
+ // In case of a spurious wakeup in waitForCommittedRequests we
should not
+ // remove the request from the queue until it has been processed
+ Request request = committedRequests.peek();
+
+ if (request == null) {
+ committedRequests.poll();
--- End diff --
If request==null then the committedRequests queue is already empty. Why do
need to poll() here?
Could it be a small mistake and originally you wanted to poll() after the
peek() was successful...?
---