Venkateswararao Jujjuri (JV) created BOOKKEEPER-924:
-------------------------------------------------------

             Summary: addEntry() is susceptible to spurious wakeups
                 Key: BOOKKEEPER-924
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-924
             Project: Bookkeeper
          Issue Type: Bug
            Reporter: Venkateswararao Jujjuri (JV)
            Assignee: Venkateswararao Jujjuri (JV)
            Priority: Critical


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)

Reply via email to