You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
Intents DB iterator are being created while apply intents.
After 6f9c6a4/D15582 it is done in callback as a part of write to regular db.
But we have to lock intents db mutex while creating iterator.
Also we have logic to flush regular db before flushing intents db.
It is performed while holding intents db mutex.
But flush waits until running write is complete.
So there is a deadlock between intents db mutex and write to regular db.
This diff fixes deadlock by creating iterator outside of write callback.
Test Plan: Jenkins
Reviewers: bogdan, timur
Reviewed By: timur
Subscribers: ybase
Differential Revision: https://phabricator.dev.yugabyte.com/D15879
Summary:
Intents DB iterator are being created while apply intents.
After 6f9c6a4/D15582 it is done in callback as a part of write to regular db.
But we have to lock intents db mutex while creating iterator.
Also we have logic to flush regular db before flushing intents db.
It is performed while holding intents db mutex.
But flush waits until running write is complete.
So there is a deadlock between intents db mutex and write to regular db.
This diff fixes deadlock by creating iterator outside of write callback.
Original commit: 4432bd3/D15879
Test Plan: Jenkins
Reviewers: bogdan, timur
Reviewed By: timur
Subscribers: ybase
Differential Revision: https://phabricator.dev.yugabyte.com/D15907
Summary:
Intents DB iterator are being created while apply intents.
After 6f9c6a4/D15582 it is done in callback as a part of write to regular db.
But we have to lock intents db mutex while creating iterator.
Also we have logic to flush regular db before flushing intents db.
It is performed while holding intents db mutex.
But flush waits until running write is complete.
So there is a deadlock between intents db mutex and write to regular db.
This diff fixes deadlock by creating iterator outside of write callback.
Test Plan: Jenkins
Reviewers: bogdan, timur
Reviewed By: timur
Subscribers: ybase
Differential Revision: https://phabricator.dev.yugabyte.com/D15879
Description
Slack link for more context + dump of all threads: https://yugabyte.slack.com/archives/C01CB38CZHU/p1646669491969579?thread_ts=1646378629.443139&cid=C01CB38CZHU
The text was updated successfully, but these errors were encountered: