[ https://issues.apache.org/jira/browse/BOOKKEEPER-924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15571862#comment-15571862 ]
Hudson commented on BOOKKEEPER-924: ----------------------------------- FAILURE: Integrated in Jenkins build bookkeeper-master #1533 (See [https://builds.apache.org/job/bookkeeper-master/1533/]) BOOKKEEPER-924: addEntry() is susceptible to spurious wakeups (sijie: rev bf4a4d6a07f9d615752054c6743035cebd86716e) * (edit) bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java * (edit) bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java * (edit) bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandleAdv.java * (edit) bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java * (add) bookkeeper-server/src/main/java/org/apache/bookkeeper/client/SynchCallbackUtils.java > addEntry() is susceptible to spurious wakeups > --------------------------------------------- > > Key: BOOKKEEPER-924 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-924 > Project: Bookkeeper > Issue Type: Bug > Affects Versions: 4.3.2 > Reporter: Venkateswararao Jujjuri (JV) > Assignee: Matteo Merli > Priority: Critical > Fix For: 4.5.0 > > > LedgerHandle sync interface heavily depends on SyncCounter to convert async > interfaces > into sync interfaces. > Usaylly > SyncCounter.inc() > asyncCall() > SyncCOunter.block(0) > The block code is. > synchronized void block(int limit) throws InterruptedException { > while (i > limit) { > int prev = i; > wait(); > if (i == prev) { > break; > } > } > } > Since 'i' is going to be same as 'prev' on spurious wakeup, and wait() can > return on spurious wakeups. -- This message was sent by Atlassian JIRA (v6.3.4#6332)