Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Important/urgent to-device messages (eg room keys) can get blocked behind big queues of less important ones #1659

Open
Tracked by #245
richvdh opened this issue Oct 5, 2023 · 3 comments

Comments

@richvdh
Copy link
Member

richvdh commented Oct 5, 2023

Eg, if you have another client which spams out room key requests, those requests can take quite a long time to be delivered to a client, and during that time no m.room.encrypted events holding actual useful content are delivered.

@richvdh
Copy link
Member Author

richvdh commented Oct 5, 2023

matrix-org/matrix-spec-proposals#3944 is one proposal to partially mitigate this

@pmaier1
Copy link

pmaier1 commented Jan 15, 2024

Outcome of crypto workshop today: We consider this input for future sync concepts, rather than trying to tackle this issue in the context of the current architecture. Main reason being that UTDs caused by this issue will resolve after some time and aren't permanent therefore.

@BillCarsonFr
Copy link
Member

Here is a rageshake of a session experiencing late keys https://github.com/element-hq/element-x-android-rageshakes/issues/1377

As we can see, the queue is mostly room key requests.

"m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type: "m.room_key_request", .. }, RawEvent { event_type:

Given that key requests are disabled by default now should greatly improve the late key problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants