Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
3.3.6
Description
In method FSEditLogAsync#enqueueEdit , there exist the below codes:
if (Thread.holdsLock(this)) { // if queue is full, synchronized caller must immediately relinquish // the monitor before re-offering to avoid deadlock with sync thread // which needs the monitor to write transactions. int permits = overflowMutex.drainPermits(); try { do { this.wait(1000); // will be notified by next logSync. } while (!editPendingQ.offer(edit)); } finally { overflowMutex.release(permits); } }
It maybe invoke this.wait(1000) without having object this's monitor.
Attachments
Issue Links
- links to