You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2022/08/05 11:55:36 UTC
[iotdb] branch ml_0729_test_exp1_no_write updated: fix the issue for deadlock
This is an automated email from the ASF dual-hosted git repository.
xingtanzjr pushed a commit to branch ml_0729_test_exp1_no_write
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/ml_0729_test_exp1_no_write by this push:
new 238c3598c7 fix the issue for deadlock
238c3598c7 is described below
commit 238c3598c78fdf9fb90636d62bf788393ab34fb8
Author: Jinrui.Zhang <xi...@gmail.com>
AuthorDate: Fri Aug 5 19:55:23 2022 +0800
fix the issue for deadlock
---
.../iotdb/consensus/multileader/logdispatcher/LogDispatcher.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/multileader/logdispatcher/LogDispatcher.java b/consensus/src/main/java/org/apache/iotdb/consensus/multileader/logdispatcher/LogDispatcher.java
index ef72907d35..8bd70ae18c 100644
--- a/consensus/src/main/java/org/apache/iotdb/consensus/multileader/logdispatcher/LogDispatcher.java
+++ b/consensus/src/main/java/org/apache/iotdb/consensus/multileader/logdispatcher/LogDispatcher.java
@@ -118,9 +118,12 @@ public class LogDispatcher {
thread.getPendingRequest().size());
long putToQueueStartTime = System.nanoTime();
try {
- thread
+ while (!thread
.getPendingRequest()
- .put(new IndexedConsensusRequest(serializedRequests, request.getSearchIndex()));
+ .offer(new IndexedConsensusRequest(serializedRequests, request.getSearchIndex()))) {
+ impl.getIndexObject().wait();
+ }
+ ;
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
@@ -281,6 +284,7 @@ public class LogDispatcher {
bufferedRequest,
config.getReplication().getMaxRequestPerBatch() - bufferedRequest.size());
maxIndexWhenBufferedRequestEmpty = impl.getIndex() + 1;
+ impl.getIndexObject().notifyAll();
}
// remove all request that searchIndex < startIndex
Iterator<IndexedConsensusRequest> iterator = bufferedRequest.iterator();