mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Corrected Common.RWLockDeadlock test
This commit is contained in:
parent
2a8867f330
commit
2951ed4f1d
@ -150,9 +150,16 @@ TEST(Common, RWLockDeadlock)
|
|||||||
usleep(100000);
|
usleep(100000);
|
||||||
usleep(100000);
|
usleep(100000);
|
||||||
usleep(100000);
|
usleep(100000);
|
||||||
|
usleep(100000);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto holder2 = lock2->getLock(RWLockImpl::Read, "q1");
|
auto holder2 = lock2->getLock(RWLockImpl::Read, "q1");
|
||||||
|
if (!holder2)
|
||||||
|
{
|
||||||
|
throw Exception(
|
||||||
|
"Locking attempt timed out! Possible deadlock avoided. Client should retry.",
|
||||||
|
ErrorCodes::DEADLOCK_AVOIDED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (const Exception & e)
|
catch (const Exception & e)
|
||||||
{
|
{
|
||||||
@ -174,9 +181,16 @@ TEST(Common, RWLockDeadlock)
|
|||||||
auto holder2 = lock2->getLock(RWLockImpl::Read, "q3");
|
auto holder2 = lock2->getLock(RWLockImpl::Read, "q3");
|
||||||
usleep(100000);
|
usleep(100000);
|
||||||
usleep(100000);
|
usleep(100000);
|
||||||
|
usleep(100000);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto holder1 = lock1->getLock(RWLockImpl::Read, "q3");
|
auto holder1 = lock1->getLock(RWLockImpl::Read, "q3");
|
||||||
|
if (!holder1)
|
||||||
|
{
|
||||||
|
throw Exception(
|
||||||
|
"Locking attempt timed out! Possible deadlock avoided. Client should retry.",
|
||||||
|
ErrorCodes::DEADLOCK_AVOIDED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (const Exception & e)
|
catch (const Exception & e)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user