Pavel Tupitsyn created IGNITE-4648: -------------------------------------- Summary: TransactionProxyImpl.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 Priority: Minor Fix For: 2.1
{{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.3.15#6346)