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

Add possibility to check transaction state

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.0-beta1
    • 3.0
    • general

    Description

      Sql layer can raise transaction implicitly if no explicit is supplied, tx.(rollback|commit) methods for appropriate implicit tx may be untouched due to bug.
      Check

      SqlQueryProcessor#querySingle0

      the only call for implicit tx.
      For now there are huge number of tests (for example ItSqlAsynchronousApiTest#implicitTransactionsStates) that use reflection for detection transaction completeness. This is erroneous way. So required test only functionality that can shows call difference between TxManager.begin(boolean) and Transaction.(commit|rollback).
      Another words: required functionality that detects that no transactions without Transaction.(commit|rollback) call are present in appropriate TxManager.

      Pseudo code, as i can see it

      TxManager txManagerInstance = ... (so this is a questionable how can we get it without reflection)
      tx = txManagerInstance.begin(RW or RO);
      ...
      some code, probably sql corner cases...
      call_sql_operation_with_EXPLICIT_tx(tx, ...);
      tx.commit();
      
      call_sql_operation_with_IMPLICIT_tx(null, ...); (tx will burn and finalize internally)
      ....
      
      assertTrue(txManagerInstance.no_transactions_without_commit_or_rollback_call())
      

      Attachments

        Issue Links

          Activity

            People

              alapin Alexander Lapin
              zstan Evgeny Stanilovsky
              Evgeny Stanilovsky Evgeny Stanilovsky
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 50m
                  50m