Description
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.
Attachments
Attachments
Issue Links
- links to