Michael Blow has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/1309
Change subject: Windows 10 Logs Constant Exceptions On CC/NC Death
......................................................................
Windows 10 Logs Constant Exceptions On CC/NC Death
- Backoff delays on IPC Listener Thread exceptions; use logger instead of
printStackTrace()
Change-Id: Iec7a3ce23ab99d04b0fc0e0f832cce1a461e2df8
---
M
hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCConnectionManager.java
1 file changed, 20 insertions(+), 9 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/09/1309/1
diff --git
a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCConnectionManager.java
b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCConnectionManager.java
index b03b7e0..25b7fed 100644
---
a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCConnectionManager.java
+++
b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCConnectionManager.java
@@ -35,6 +35,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -71,11 +72,11 @@
ServerSocket socket = serverSocketChannel.socket();
socket.bind(socketAddress);
address = new InetSocketAddress(socket.getInetAddress(),
socket.getLocalPort());
- ipcHandleMap = new HashMap<InetSocketAddress, IPCHandle>();
- pendingConnections = new ArrayList<IPCHandle>();
- workingPendingConnections = new ArrayList<IPCHandle>();
- sendList = new ArrayList<Message>();
- workingSendList = new ArrayList<Message>();
+ ipcHandleMap = new HashMap<>();
+ pendingConnections = new ArrayList<>();
+ workingPendingConnections = new ArrayList<>();
+ sendList = new ArrayList<>();
+ workingSendList = new ArrayList<>();
}
InetSocketAddress getAddress() {
@@ -191,7 +192,8 @@
throw new RuntimeException(e);
}
BitSet unsentMessagesBitmap = new BitSet();
- List<Message> tempUnsentMessages = new ArrayList<Message>();
+ List<Message> tempUnsentMessages = new ArrayList<>();
+ int failingLoops = 0;
while (!stopped) {
try {
if (LOGGER.isLoggable(Level.FINE)) {
@@ -204,7 +206,7 @@
SocketChannel channel = SocketChannel.open();
channel.setOption(StandardSocketOptions.TCP_NODELAY, true);
channel.configureBlocking(false);
- SelectionKey cKey = null;
+ SelectionKey cKey;
if (channel.connect(handle.getRemoteAddress())) {
cKey = channel.register(selector,
SelectionKey.OP_READ);
handle.setState(HandleState.CONNECT_SENT);
@@ -310,7 +312,7 @@
throw new Exception("Connection did
not finish");
}
} catch (Exception e) {
- e.printStackTrace();
+ LOGGER.log(Level.WARNING, "Exception
finishing connection", e);
handle.setState(HandleState.CONNECT_FAILED);
continue;
}
@@ -321,8 +323,17 @@
}
}
}
+ // reset failingLoops on a good loop
+ failingLoops = 0;
} catch (Exception e) {
- e.printStackTrace();
+ int sleepSecs = (int)Math.pow(2, Math.min(11,
failingLoops++));
+ LOGGER.log(Level.WARNING, "Exception processing message;
sleeping " + sleepSecs
+ + " seconds", e);
+ try {
+ Thread.sleep(TimeUnit.SECONDS.toMillis(sleepSecs));
+ } catch (InterruptedException e1) {
+ Thread.currentThread().interrupt();
+ }
}
}
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/1309
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iec7a3ce23ab99d04b0fc0e0f832cce1a461e2df8
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <[email protected]>