Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-3010

Move TinkerGraph specific transaction testing

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 3.7.0
    • 3.7.1
    • test-suite
    • None

    Description

      As reported by multiple providers on Discord,

      From Boxuan:

      The newly added TransactionMultiThreadedTest::shouldHandleAddingSameVertexInDifferentTx in 3.7.0 release assumes the provider supports custom vertex ID, which was not the case in previous releases. Assuming this was not intentional, should we have a feature flag for this requirement? 
      The newly added TransactionMultiThreadedTest::shouldHandleConcurrentChangeForProperty in 3.7.0 release assumes the behavior of two conflicting transactions is TransactionException. This is totally fine, but IMO this is TinkerGraph specific behavior and should not apply to providers in general. For example, another common approach is to let one transaction wait for the other. 

      From Pieter:

      Hi, in upgrading Sqlg to 3.7.0 the TransactionMultiThreadedTest is executing now.
      Quite a few of the tests are hanging, but it seems to me an implementation issue with the test rather than the underlying transaction semantics. 

      Multi threaded tests should not themselves have one thread waiting for another. The tests are creating artificial conditions where one thread waits for another.
      Take for example TransactionMultiThreadedTest.shouldHandleConcurrentVertexDelete

      shouldHandleAddingPropertyWhenOtherTxDeleteEdge
      shouldHandleAddingPropertyWhenOtherTxDeleteVertex
      shouldDeleteEdgeOnCommit
      shouldHandleConcurrentChangeForProperty
      shouldHandleAddingEdgeWhenOtherTxDeleteVertex
      shouldHandleConcurrentChangeForVertexProperty
      shouldHandleConcurrentDeleteEdge
      shouldHandleAddingSameVertexInDifferentTx
      shouldThrowExceptionWhenTryToAddVertexWithUsedId

      These are the ones I had to OptOut of.
      The other minor issue is on shouldThrowExceptionWhenTryToAddVertexWithUsedId 
      My code throws an UnsupportedOperationException while the test expects an IllegalStateException
      I did not investigate which one is correct by I suspect its UnsupportedOperationException

      These tests exhibit TinkerTransactionGraph specific behavior and should be moved to TinkerTransactionGraphTest. Search through all tests in TransactionMultiThreadedTest for possible candidates.

      Attachments

        Activity

          People

            Unassigned Unassigned
            kenhuuu Ken Hu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: