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

ChatStore::set_receipts locks up app for bad connections #99

Closed
benjajaja opened this issue May 11, 2023 · 1 comment
Closed

ChatStore::set_receipts locks up app for bad connections #99

benjajaja opened this issue May 11, 2023 · 1 comment
Assignees
Milestone

Comments

@benjajaja
Copy link
Contributor

benjajaja commented May 11, 2023

When I disconnect or have a bad connection, then iamb freezes entirely. It accepts no input whatsoever. It resumes normal state when I reconnect.

If I comment out line 684 in base.rs:

let _ = room.read_receipt(read_till.as_ref()).await;

then iamb does not freeze at all, because presumably the lock in the rcpt_handle thread is released. Overall, removing that .await (or long lock) makes iamb feel snappier.

Related to #96

@ulyssa ulyssa changed the title set_receipts locks app when room.read_receipt(...).await blocks due to a bad connection ChatStore::set_receipts locks up app for bad connections May 13, 2023
@ulyssa ulyssa self-assigned this May 13, 2023
@ulyssa ulyssa added this to the v0.0.8 milestone May 13, 2023
@ulyssa
Copy link
Owner

ulyssa commented May 13, 2023

Thanks for tracking this down! I've moved the code that talks to the homeserver out of that method and placed it in the caller instead.

For anyone who doesn't want to build from main or wait until the next release for this, setting read_receipt_send to false in your configuration should avoid hitting this specific issue for now.

@ulyssa ulyssa closed this as completed May 13, 2023
@ulyssa ulyssa mentioned this issue Jul 8, 2023
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

2 participants