commit e1fd67d7fc5889dad4ae1ecaed7c8a53b0df8c5a
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Wed Oct 20 10:52:56 2021 -0500
fix(tx): Fix cascading livelock caused by cancelling a transaction.
Cancelling a transaction was causing a cascading livelock by waiting
forever for a channel close that would never happen. This would cause
the transaction in-flight semaphore to permanently lose a token, which
would in turn cause a mass cascade of semaphore wait timeouts the next
time something requested an exclusive lock on the datastore. Resolve
the issue by not waiting on the transaction channel if the transaction
is being cancelled.
M datastack/stack.go
M transact/tx.go
End of Note