
|
If you were logged in you would be able to see more operations.
|
|
|
Environment:
|
Windows XP SP2
|
|
SailConnectionBase.autoStartTransaction calls startTransactionInternal at line 275. If NativeStoreConnection.startTransactionInternal throws an Error from the call to the triple store to start a transaction (NativeStoreConnection: 329), the thread has a transaction lock from the ExclusiveLockManager, but the SailConnectionBase doesn't get to line 276 to set txnActive=true. This means a rollback will not recognize that it has an active transaction and call rollbackInternal at line 314, which means the thread never releases the ExclusiveLockManager.ExclusiveLock. Any attempt to start a transaction will block at ExclusiveLockManager.getExclusiveLock, line 86, waiting for someone to set lockInUse to false. This never happens because no rollback will clear it's lock.
|
|
The NativeStore (and MemoryStore too) should release the lock if they fail to start the transaction properly.
Lock that are acquired in startTransactionInternal are now released in case an exception is thrown. This has been fixed in the NativeStore, MemoryStore and RdbmsStore.
|
|