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
The text was updated successfully, but these errors were encountered:
git-hulk
changed the title
We may have the deadlock in ZSet::InterStore(as well as other similar APIs) if the dst key was inside the source key list since the OverWrite function will also lock the dst key: https://github.com/apache/kvrocks/blob/unstable/src/types/redis_zset.cc#L635
We may have the deadlock in ZSet::InterStore(as well as other similar APIs) if the dst key was inside the source key list
Aug 30, 2023
git-hulk
changed the title
We may have the deadlock in ZSet::InterStore(as well as other similar APIs) if the dst key was inside the source key list
We may have the deadlock in ZSet::InterStore(as well as other similar APIs)
Aug 30, 2023
CI TSAN show ZINTERSTORE may has a deadlock after introducing
locks to DEL in #1712. In ZSet::InterStore if the dst key was
inside the source key list we may have a deadlock since the
OverWrite function will also lock the dst key.
In this PR, we split Inter in ZSet::InterStore into a separate
function, just like the Set apis.
After this PR, after the CI verification in #1712, it can pass
the CI verification now. Closes#1715
This PR also do a saved_cnt cleanup since it is same as members.size().
We may have the deadlock in ZSet::InterStore(as well as other similar APIs) if the dst key was inside the source key list since the OverWrite function will also lock the dst key: https://github.com/apache/kvrocks/blob/unstable/src/types/redis_zset.cc#L635
This issue was found by TSAN in CI: https://github.com/apache/kvrocks/actions/runs/6022265431/job/16338859035?pr=1712
Originally posted by @git-hulk in #1712 (comment)
The text was updated successfully, but these errors were encountered: