thunderbird / thunderbird/thunderbird-android

TB (sometimes) does not send mails, freezes then crash when clicking mark as read

Open
#9,487 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: answered unconfirmed
Dominant language
Kotlin
Stars
14k
Forks
2.8k
Avg merge
3d 3h
Merged PRs (30d)
57

Description

Checklist
  • I have used the search function to see if someone else has already submitted the same bug report.
  • I will describe the problem with as much detail as possible.
App

Thunderbird for Android

App version

11.0

Where did you get the app from?

F-Droid

Android version

16

Device model

Pixel 7a

Steps to reproduce
  1. Open a received mail for reading.
  2. Write and send an answer to that mail.
  3. Back on the page displaying the mail you answered to, click the "mark as read" button.
Expected behavior

The composed answer should be sent, and the mail should be marked as read.

Actual behavior

TB freezes (the button remains in the "clicked" state). If I do something else with the phone, after a while, I may get a notification that TB has crashed. Today, making a screen capture (double tap on the back of the device) seems to have unfrozen TB.

Afterwards, I cannot always find the mail I wrote in my Sent folder (on the contrary, I found an intermediate version of one of them in the Drafts).

Logs

I am not going to publish the full log, as it contains personal data, including of other people.

Here is an excerpt from when I did step 2 :

07-23 12:52:26.834 21357 21378 I MessagingController: Scanning Outbox folder for messages to send
07-23 12:52:26.835 21357 21378 I MessagingController: Send count for message K9LOCAL:***REDACTED*** is 0
07-23 12:52:26.841 21357 21378 V LockableDatabase: LockableDatabase: Transaction ended, took 1 ms / com.fsck.k9.mailstore.LocalMessage.setFlag(LocalMessage.java:256)
07-23 12:52:26.900 21357 18528 W BpBinder: Large outgoing transaction of 512184 bytes, interface descriptor , code 11 was sent
07-23 12:52:26.901 21357 21378 I MessagingController: Sending message with UID K9LOCAL:***REDACTED***
07-23 12:52:26.914 21357 21378 D SmtpTransport: Connecting to smtp-***REDACTED***
07-23 12:52:27.006 21357 21378 V SmtpTransport: SMTP <<< 220 ***REDACTED*** ESMTP Postfix
07-23 12:52:27.007 21357 21378 D SmtpTransport: SMTP >>> EHLO ehlo.thunderbird.net
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: Ignoring EHLO keyword line: AUTH=PLAIN LOGIN
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: com.fsck.k9.mail.transport.smtp.SmtpResponseParserException: EHLO keyword contains invalid character
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpResponseParser.parserError(SmtpResponseParser.kt:414)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpResponseParser.checkAndNormalizeEhloKeyword(SmtpResponseParser.kt:138)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpResponseParser.parseEhloLine(SmtpResponseParser.kt:122)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpResponseParser.readHelloResponse(SmtpResponseParser.kt:108)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpTransport.sendHello(SmtpTransport.kt:293)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpTransport.open$smtp(SmtpTransport.kt:106)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.mail.transport.smtp.SmtpTransport.sendMessage(SmtpTransport.kt:336)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.backend.imap.ImapBackend.sendMessage(ImapBackend.kt:146)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.controller.MessagingController.sendPendingMessagesSynchronous(MessagingController.java:1557)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.controller.MessagingController$5.run(MessagingController.java:1442)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.controller.MessagingController.runInBackground(MessagingController.java:234)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.controller.MessagingController.-$$Nest$mrunInBackground(MessagingController.java:0)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at com.fsck.k9.controller.MessagingController$1.run(MessagingController.java:174)
07-23 12:52:27.032 21357 21378 V SmtpTransport$logger: 	at java.lang.Thread.run(Thread.java:1119)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the SMTP failure in SmtpResponseParser.kt and follow the call chain through SmtpTransport.kt, ImapBackend.kt, and MessagingController.java. Reproduce the invalid EHLO keyword case and inspect how the send and mark-as-read actions handle the failure. Done means the app does not freeze or crash and the message remains recoverable in Sent or Drafts.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kotlin
Domain
backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.