diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 8182afdc3f0..68b6c243370 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -2181,7 +2181,14 @@ public class HRegion implements HeapSize { // , Writable{ // If we haven't got any rows in our batch, we should block to // get the next one. boolean shouldBlock = numReadyToWrite == 0; - Integer acquiredLockId = getLock(providedLockId, mutation.getRow(), shouldBlock); + Integer acquiredLockId = null; + try { + acquiredLockId = getLock(providedLockId, mutation.getRow(), + shouldBlock); + } catch (IOException ioe) { + LOG.warn("Failed getting lock in batch put, row=" + + Bytes.toStringBinary(mutation.getRow()), ioe); + } if (acquiredLockId == null) { // We failed to grab another lock assert !shouldBlock : "Should never fail to get lock when blocking"; @@ -3223,7 +3230,8 @@ public class HRegion implements HeapSize { // , Writable{ try { if (!existingLatch.await(this.rowLockWaitDuration, TimeUnit.MILLISECONDS)) { - return null; + throw new IOException("Timed out on getting lock for row=" + + Bytes.toStringBinary(row)); } } catch (InterruptedException ie) { // Empty