Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-4648

IgniteInternalTx.prepare() does not wait for async operations to complete

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.7
    • 2.3
    • cache
    • None

    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

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            SomeFire Ryabov Dmitrii
            ptupitsyn Pavel Tupitsyn
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment