[
https://issues.apache.org/jira/browse/HBASE-17158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ChiaPing Tsai updated HBASE-17158:
----------------------------------
Attachment: HBASE-17158.v2.patch
address the comment from [[email protected]]
> 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, HBASE-17158.v1.patch,
> HBASE-17158.v2.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)