[
https://issues.apache.org/jira/browse/IGNITE-10434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16729413#comment-16729413
]
Vladimir Ozerov commented on IGNITE-10434:
------------------------------------------
[~gvvinblade], patch looks good to me. However, I have two question.
1) {{GridNearTxQueryEnlistFuture}} is now submitted to {{QUERY_POOL}}, which is
correct. But what will happen when this query is resumed after suspension due
to locked key? Will it continue execution in {{QUERY_POOL}} still?
2) As a part of IGNITE-9171, which is going to be merged soon, we reworked
table locking model. In new implementation when we are about to suspend query
execution for a while ("lazy" mode), we release locks on all locked tables.
When execution is resumed, we re-acquire locks on that tables, and then check
whether the table was *changed* between suspend/resume. This is needed to avoid
deadlocks on concurrent DDL and non-DDL operations. In case change is detected,
we stop query execution with exception. Please think on how to integrate the
same mechanics into {{GridNearTxQueryEnlistFuture}} flow. This might be
separate ticket which we implement once IGNITE-9171 is merged.
> MVCC: Transaction asynchronous rollback bug.
> --------------------------------------------
>
> Key: IGNITE-10434
> URL: https://issues.apache.org/jira/browse/IGNITE-10434
> Project: Ignite
> Issue Type: Bug
> Components: mvcc
> Reporter: Roman Kondakov
> Assignee: Igor Seliverstov
> Priority: Major
> Labels: mvcc_stabilization_stage_1, transactions
> Fix For: 2.8
>
>
> There is some bug in mvcc tx asynchronous rollback flow. Sometimes
> transaction is not rolled back completely: Remote transactions remain alive
> while Near and Dht transactions are terminated locally and on MVCC
> coordinator.
> Reproducer: {{MvccTxRollbackAsyncTest#testMixedAsyncRollbackTypes}}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)