chatmail / chatmail/core

IDLE keepalives are not sent frequently enough on Android when the app is suspended

Open
#6,533 5 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
929
Forks
143
Avg merge
1d 20h
Merged PRs (30d)
53

Description

Delta Chat attempts to interrupt IDLE every 5 minutes:
https://github.com/deltachat/deltachat-core-rust/blob/81e9628ab79941adaa12de1e30cefb8d8d69b3f9/src/imap/idle.rs#L14-L20

However, this does not seem to happen because monotonic clock used almost everywhere does not advance when the app is suspended and boottime clocks which should be used instead are not available in Rust yet:
- https://github.com/tokio-rs/tokio/issues/3185
- https://github.com/rust-lang/rust/issues/71860
- https://github.com/rust-lang/rust/pull/132331

FairEmail apparently does not have such problems, but it is using Java APIs everywhere:
https://github.com/deltachat/deltachat-core-rust/issues/6532#issuecomment-2650490127

The bug can be worked around by reducing `imap_idle_notify_interval` in Dovecot, but we need a fix on the client side:
https://github.com/deltachat/deltachat-core-rust/issues/6532#issuecomment-2650490213

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.