[ https://issues.apache.org/jira/browse/IGNITE-4648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16085771#comment-16085771 ]
Pavel Tupitsyn commented on IGNITE-4648: ---------------------------------------- [~yzhdanov] I've updated .NET tests to check async operations within {{TransactionScope}}. These tests hang or fail in master, but work fine in this branch. > IgniteInternalTx.prepare() does not wait for async operations to complete > ------------------------------------------------------------------------- > > Key: IGNITE-4648 > URL: https://issues.apache.org/jira/browse/IGNITE-4648 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: 1.7 > Reporter: Pavel Tupitsyn > Assignee: Ryabov Dmitrii > Priority: Minor > Fix For: 2.2 > > > {{commit}} and {{rollback}} wait for async operations by calling > {{tx.txState().awaitLastFut();}} (see {{GridCacheSharedContext}}). > There is no such thing in {{IgniteInternalTx.prepare()}} implementations. > Since {{prepare}} is an internal method, this is not an issue mostly, except > for two things: > * JTA. {{CacheJtaResource}} calls {{prepare()}} explicitly. > * .NET {{TransactionScope}} API. Same thing as JTA, basically. > {{PlatformTransactions}} call {{prepare()}} as well. > As a result, if user starts an async operation within JTA transaction and > then completes the tx, undefined behavior is possible. -- This message was sent by Atlassian JIRA (v6.4.14#64029)