* fix: Remove a stale reference to blocking watch queue

1. Remove the duplicated FinalizeWatched function
2. Identify the case where we delete the watched queue while we may still have awakedened_keys pointing to it.
3. Add a test reproducing the issue of having in awakened_keys an untangled key.

Properly fixes #2514

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
This commit is contained in:
Roman Gershman 2024-02-01 14:19:08 +02:00 committed by GitHub
parent 2b0310db32
commit adeac6bd27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 36 additions and 48 deletions

View file

@ -28,10 +28,8 @@ class BlockingController {
return awakened_transactions_;
}
void FinalizeWatched(KeyLockArgs lock_args, Transaction* tx);
// A mirror reflection but with ArgSlice. Yeah, I know....
void FinalizeWatched(ArgSlice args, Transaction* tx);
// go over potential wakened keys, verify them and activate watch queues.
void NotifyPending();