This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Parallel push rule deletes causing deadlock on main process #16053
Labels
O-Uncommon
Most users are unlikely to come across this or unexpected workflow
S-Major
Major functionality / product severely impaired, no satisfactory workaround.
T-Defect
Bugs, crashes, hangs, security vulnerabilities, or other reported issues.
Yesterday our main process locked up after receiving a few parallel deletes to the same push rule:
I had a quick look and there doesn't appear to be any linearization of push rule requests allowing for this to happen in rare cases. Quick fix is probably just linearize all push rule requests by user ID, the volume should be sufficiently low to not cause issues. PR for this: #16052
I also spotted two explicit locks on the entire push rules table that may be causing issues:
synapse/synapse/storage/databases/main/push_rule.py
Lines 399 to 401 in 01a4586
I don't think this are required (anymore, at least) since the select & upsert are already part of a transaction, PR for this:#16051
The text was updated successfully, but these errors were encountered: