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
while ignore_user_list_stream.next().await.is_some(){
info!("Received an ignore user list change");
ifletErr(err) = inner.clear_all_rooms().await{
error!("when clearing room storage after ignore user list change: {err}");
}
}
This might not be an issue, if only the initial sync contained the ignored-user-list event, and the event cache has been subscribed to after the first initial sync has been received. But in general, this is a footgun that would be nice to avoid. Things I can imagine to solve this:
only trigger the observable when the value changed, compared to a previous value we knew about. Meaning we'd compare the new value with the one stored in the database.
equivalently, maintain a list of ignored users in the event cache, and only clear the room if this list has changed
If the sync returns a state event of the kind
IgnoredUserList
, then this triggers the observableignore_user_list_changes
in the base client:matrix-rust-sdk/crates/matrix-sdk-base/src/client.rs
Lines 1294 to 1301 in c8536e9
Unfortunately, this will cause a clear of all the rooms in the event cache:
matrix-rust-sdk/crates/matrix-sdk/src/event_cache/mod.rs
Lines 269 to 274 in c8536e9
This might not be an issue, if only the initial sync contained the ignored-user-list event, and the event cache has been subscribed to after the first initial sync has been received. But in general, this is a footgun that would be nice to avoid. Things I can imagine to solve this:
Likely a blocker for #3280.
cc @Hywan
The text was updated successfully, but these errors were encountered: