UpgradeIT.testConcurrentUpgradeThrowsUpgradeInProgressException is sometimes failing with error logs:
While testing if 2 threads can simultaneously acquire lock, we release the lock immediately in finally for individual thread if it had acquired the mutex. This can lead to failure if one of the threads starts executing (due to slowness) only after the other thread releases mutex cell. In that case, the sequence of mutex acquisition would be:
Thread1 acquires -> Thread1 releases -> Thread2 acquires -> Thread2 releases
Because of this sequence, the above mentioned AssertionError can occur.