thunderbird / thunderbird/thunderbird-android
K9 email completion crashes compose without saving
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
This was tested in both K9 5.600 and 5.704.
I have more than 7000 contacts on my android device. Most have one email, some have multiple.
When I try to insert email addresses sometimes K9 compose crashes before showing the list of email completion. Not all prefixes lead to a crash but some crash consistently in a reproducible manner. (e.g. typing "ma" crashes but if I type "matt" quick enough it works fine). This makes me assume that the problem is either some attribute in a subset of the contacts or the list of possible matches being too large. I have not yet managed to isolate if that's the cause of the crash though.
I usually write the body of the message first and provide the emails in the end so the crash often leads to loss of the message that was just typed.
K9 5.704 seems to be a bit more resilient to this bug. In 5.600 being faster at typing the desired match doesn't actually help.
Expected behavior
Email completion should not crash the interface/app.
Actual behavior
Compose closes/crashes without saving a draft and I'm sent back to the initial inbox.
Steps to reproduce
- Have a large number of contacts/emails (10.000)
- Start a new email message
- In the "To:", "CC" or "BCC" sections, type a common 2 letter pattern "an", "ma" or something shared by a large number of contacts.
Environment
K-9 Mail version: 5.704
Android version: 9
Account type (IMAP, POP3, WebDAV/Exchange): IMAP
Please take some time to retrieve logs and attach them here: (will try to get logs as soon as possible)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the crash from the compose screen's To, Cc, or Bcc completion fields using a large contact list and a common two-letter prefix. First retrieve the logs using the linked logging guide and inspect the resulting crash trace; done means completion no longer crashes and the compose draft remains available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100