Skip to content

Commit 976d6f7

Browse files
authored
fix(pbft): fix concurrent access issue of srPbftMessage (#5703)
* fix(pbft): fix the concurrent access issue of srPbftMessage
1 parent cbf2417 commit 976d6f7

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

consensus/src/main/java/org/tron/consensus/pbft/PbftMessageHandle.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ public boolean isSyncing() {
262262
}
263263

264264
//Cleanup related status
265-
private void remove(String no) {
265+
private synchronized void remove(String no) {
266266
String pre = String.valueOf(no) + "_";
267267
preVotes.remove(no);
268268
pareVoteMap.keySet().removeIf(vp -> StringUtils.startsWith(vp, pre));
@@ -285,7 +285,7 @@ private void remove(String no) {
285285
//just try once
286286
if (srPbftMessage != null && StringUtils.equals(no, srPbftMessage.getNo())) {
287287
try {
288-
Thread.sleep(100);
288+
wait(100);
289289
} catch (InterruptedException e) {
290290
Thread.currentThread().interrupt();
291291
} catch (Exception e) {

framework/src/test/java/org/tron/core/pbft/PbftTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public void testPbftSrMessage() {
2929
ByteString.copyFrom(ByteArray.fromHexString("41df309fef25b311e7895562bd9e11aab2a58816d2")));
3030
PbftMessage pbftSrMessage = PbftMessage
3131
.prePrepareSRLMsg(blockCapsule, srList, 1, miner);
32+
PbftMessage.fullNodePrePrepareSRLMsg(blockCapsule, srList, 1);
3233
System.out.println(pbftSrMessage);
3334
}
3435

0 commit comments

Comments
 (0)