Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (revision 1143937) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (working copy) @@ -1349,12 +1349,14 @@ // If we did not pass an existing row lock, obtain a new one lid = getLock(lockid, row, true); - // All edits for the given row (across all column families) must happen atomically. - prepareDelete(delete); - delete(delete.getFamilyMap(), writeToWAL); - + try { + // All edits for the given row (across all column families) must happen atomically. + prepareDelete(delete); + delete(delete.getFamilyMap(), writeToWAL); + } finally { + if(lockid == null) releaseRowLock(lid); + } } finally { - if(lockid == null) releaseRowLock(lid); closeRegionOperation(); } }