farmmamba created HDFS-17334: -------------------------------- Summary: FSEditLogAsync#enqueueEdit does not synchronized this before invoke wait method Key: HDFS-17334 URL: https://issues.apache.org/jira/browse/HDFS-17334 Project: Hadoop HDFS Issue Type: Bug Components: namenode Affects Versions: 3.3.6 Reporter: farmmamba Assignee: farmmamba Fix For: 3.5.0
In method FSEditLogAsync#enqueueEdit , there exist the below codes: {code:java} 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); } } {code} It maybe invoke this.wait(1000) without having object this's monitor. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org