diff --git a/src/main/java/org/qortal/network/task/ChannelWriteTask.java b/src/main/java/org/qortal/network/task/ChannelWriteTask.java index 59bc557e..6f28a942 100644 --- a/src/main/java/org/qortal/network/task/ChannelWriteTask.java +++ b/src/main/java/org/qortal/network/task/ChannelWriteTask.java @@ -31,7 +31,20 @@ public class ChannelWriteTask implements Task { @Override public void perform() throws InterruptedException { try { - boolean isSocketClogged = peer.writeChannel(); + + boolean isSocketClogged; + do { + isSocketClogged = peer.writeChannel(); + + if (isSocketClogged) { + LOGGER.info( + "socket is clogged: peer = {} {}, retrying", + peer.getPeerData().getAddress().toString(), + Thread.currentThread().getName() + ); + Thread.sleep(1000); + } + } while( isSocketClogged ); // Tell Network that we've finished Network.getInstance().notifyChannelNotWriting(socketChannel);