[ 
https://issues.apache.org/jira/browse/HBASE-17158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ChiaPing Tsai updated HBASE-17158:
----------------------------------
    Assignee: ChiaPing Tsai
      Status: Patch Available  (was: Open)

> Avoid deadlock 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
>            Assignee: ChiaPing Tsai
>             Fix For: 2.0.0
>
>         Attachments: HBASE-17158.v0.patch
>
>
> {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)

Reply via email to