[
https://issues.apache.org/jira/browse/PHOENIX-3569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lars Hofhansl resolved PHOENIX-3569.
------------------------------------
Resolution: Duplicate
> Deadlock when updating both of local and global index
> -----------------------------------------------------
>
> Key: PHOENIX-3569
> URL: https://issues.apache.org/jira/browse/PHOENIX-3569
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.9.0, 4.8.2
> Reporter: Chia-Ping Tsai
> Priority: Critical
> Attachments: hbase-root-regionserver-node04.ncku.edu.tw.log,
> PHOENIX-3569.fail.patch, PHOENIX-3569.v0.patch, PHOENIX-3569.v1.patch
>
>
> We update the global index in Observer#postBatchMutate, but the hook is
> called before completing the mvcc.
> If ParallelWriterIndexCommitter are busy to update the local index, the other
> updates for global index will be blocked and the mvcc of data table won't be
> completed. The deadlock happens since the ParallelWriterIndexCommitter will
> never complete the updates for local index.
> We can reproduce the deadlock through the following step.
> # create a data table with a local and a global index.
> # create 10+ (DEFAULT_CONCURRENT_INDEX_WRITER_THREADS) threads which disable
> the auto commit to submit data
> # wait for the deadlock. the rs log will show the following message. "STUCK:
> MultiVersionConcurrencyControl{readPoint=8790, writePoint=8801}"
> It seems to me that we should update the both of local and global index on
> the hook of postPut and postDelete.
> Any suggestions are welcomed.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)