You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "ChiaPing Tsai (JIRA)" <ji...@apache.org> on 2016/11/22 08:29:58 UTC

[jira] [Created] (HBASE-17158) Avoid lock leak caused by HRegion#doDelta

ChiaPing Tsai created HBASE-17158:
-------------------------------------

             Summary: Avoid lock leak caused by HRegion#doDelta
                 Key: HBASE-17158
                 URL: https://issues.apache.org/jira/browse/HBASE-17158
             Project: HBase
          Issue Type: Bug
    Affects Versions: 2.0.0
            Reporter: ChiaPing Tsai
             Fix For: 2.0.0


{code:title=HRegion.java|borderStyle=solid}
private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,
      boolean returnResults) throws IOException {
    checkReadOnly();
    checkResources();
    checkRow(mutation.getRow(), op.toString());
    checkFamilies(mutation.getFamilyCellMap().keySet());
    this.writeRequestsCount.increment();
    WriteEntry writeEntry = null;
    startRegionOperation(op);
    List<Cell> results = returnResults? new ArrayList<Cell>(mutation.size()): null;
    RowLock rowLock = getRowLockInternal(mutation.getRow(), false);
    MemstoreSize memstoreSize = new MemstoreSize();
}
{code}
The getRowLockInternal() should be moved inside the try block so that the timeout won't cause the lock leak. Otherwise, we will stuck in HRegion#doClose when closing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)