-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Synapse happily accepts m.push_rules account data #7347
Comments
If you believe your users have been affected by this, you can identify those users with the following SQL query: SELECT user_id FROM account_data WHERE account_data_type = 'm.push_rules'; Recovering from this is possible by deleting those rows then editing the real push rules from Riot's notification settings (to trigger a resend of the push rules to every client). Automating the fix for all users is left as an exercise to the reader... |
Heya and thanks for the bug report. Just FYI, the custom synapse/synapse/handlers/sync.py Lines 1240 to 1264 in 118b58f
(I tested that on a personal account just now and confirmed that, even after clearing the cache in Riot, it was only seeing the unmodified push rules) The fact that Synapse happily stores that account data without updating the |
Hmm, I guess clear cache in Riot is another way of recovering from that too then. But in my testing, if I change the account data on one client (in my case riot-web), it will get pushed down /sync for my other clients (notably RiotX). From that snippet, it makes sense since RiotX would've received it in a non-initial sync and the real push rules never changed in the meantime, so it would've indeed received the new account data. |
Oh yes you're right, it's indeed an issue for incremental syncs. My bad. |
Fixed by #15555 |
Note that this is disabled by default (pending the MSC being approved). |
oh boo :( |
MSC4010 is ready from my POV! I think it is fairly straightforward. |
Description
Synapse will store changes to the
m.push_rules
account data to theaccount_data
table. This then becomes out of sync with your real push rules stored in thepush_rules
table.Steps to reproduce
Warning: Recovering from these steps requires database surgery. Do not attempt on a homeserver for which you do not have admin access to the database.
m.push_rules
Your edited "push rules" gets stored in the
account_data
table asm.push_rules
, which then gets sent out to all of your clients.Version information
The text was updated successfully, but these errors were encountered: