Catch IOException potentially caused by getQp_num().
diff --git a/rpc-darpc/src/main/java/com/ibm/crail/namenode/rpc/darpc/DaRPCServiceDispatcher.java b/rpc-darpc/src/main/java/com/ibm/crail/namenode/rpc/darpc/DaRPCServiceDispatcher.java
index 2e2bdfa..a5b8a98 100644
--- a/rpc-darpc/src/main/java/com/ibm/crail/namenode/rpc/darpc/DaRPCServiceDispatcher.java
+++ b/rpc-darpc/src/main/java/com/ibm/crail/namenode/rpc/darpc/DaRPCServiceDispatcher.java
@@ -22,6 +22,7 @@
package com.ibm.crail.namenode.rpc.darpc;
import java.util.concurrent.atomic.AtomicLong;
+import java.io.IOException;
import org.slf4j.Logger;
@@ -161,7 +162,12 @@
@Override
public void open(DaRPCServerEndpoint<DaRPCNameNodeRequest, DaRPCNameNodeResponse> endpoint) {
- LOG.info("RPC connection, qpnum " + endpoint.getQp().getQp_num());
+ try {
+ LOG.info("RPC connection, qpnum " + endpoint.getQp().getQp_num());
+ } catch(IOException e)
+ {
+ LOG.info("RPC connection, cannot get qpnum, because QP is not open.\n");
+ }
}
@Override
diff --git a/storage-rdma/src/main/java/com/ibm/crail/storage/rdma/MrCache.java b/storage-rdma/src/main/java/com/ibm/crail/storage/rdma/MrCache.java
index e1f693a..a44a527 100644
--- a/storage-rdma/src/main/java/com/ibm/crail/storage/rdma/MrCache.java
+++ b/storage-rdma/src/main/java/com/ibm/crail/storage/rdma/MrCache.java
@@ -41,7 +41,7 @@
this.cacheOps = new AtomicLong(0);
}
- public DeviceMrCache getDeviceCache(IbvPd pd){
+ public DeviceMrCache getDeviceCache(IbvPd pd) throws IOException {
DeviceMrCache deviceCache = cache.get(pd.getHandle());
if (deviceCache == null) {
deviceCache = new DeviceMrCache(pd);