Skip to content

Commit a718006

Browse files
committed
catch exception of sort peers
1 parent cae19ea commit a718006

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

framework/src/main/java/org/tron/core/net/service/effective/ResilienceService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ private void disconnectIsolated2() {
119119
one.ifPresent(peer -> disconnectFromPeer(peer, ReasonCode.BAD_PROTOCOL));
120120
}
121121

122-
//disconnect from some passive nodes, make sure retention nodes' num <= 0.8 * maxConnection
122+
//disconnect from some passive nodes, make sure retention nodes' num <= 0.8 * maxConnection,
123+
//so new peers can come in
123124
peerSize = tronNetDelegate.getActivePeer().size();
124125
int threshold = (int) (CommonParameter.getInstance().getMaxConnections() * retentionPercent);
125126
if (peerSize > threshold) {
@@ -128,8 +129,13 @@ private void disconnectIsolated2() {
128129
.filter(peer -> !peer.isDisconnect())
129130
.filter(peer -> !peer.getChannel().isTrustPeer())
130131
.filter(peer -> !peer.getChannel().isActive())
131-
.sorted(Comparator.comparing(PeerConnection::getLastActiveTime, Long::compareTo))
132132
.collect(Collectors.toList());
133+
try {
134+
peers.sort(Comparator.comparing(PeerConnection::getLastActiveTime, Long::compareTo));
135+
} catch (Exception e) {
136+
logger.warn("Sort peers failed: {}", e.getMessage());
137+
return;
138+
}
133139

134140
if (peers.size() > disconnectSize) {
135141
peers = peers.subList(0, disconnectSize);

0 commit comments

Comments
 (0)