Signal-Android icon indicating copy to clipboard operation
Signal-Android copied to clipboard

Signal terminates after update.

Open sjaeckel opened this issue 1 year ago • 40 comments

  • [x] I have searched open and closed issues for duplicates
  • [x] I am submitting a bug report for existing functionality that does not work as intended
  • [x] I have read https://github.com/signalapp/Signal-Android/wiki/Submitting-useful-bug-reports
  • [x] This isn't a feature request or a discussion topic

Bug description

Signal closed itself after opening.

Steps to reproduce

  • Tap on Signal icon

Actual result: Signal opens and then closes. Expected result: Signal should stay opened.

If I was very fast, I could tap on one of the conversations that is shown and then I could see that Signal doesn't simply terminate, but it looked like the 'back' button is pushed until Signal is closed.

I've tried multiple times and there was an Android error message sometimes, but I couldn't read it.

After some time the issue disappeared and now it works again.

Screenshots

None

Device info

Device: FP5 5G Android version: 14 Signal version: 7.17.4

Link to debug log

Here's an excerpt of the debug log, if you need the complete log feel free to let me know and I'll provide it to you.

That's the part when the update was installed:

[7.16.4] [main ] 2024-09-18 16:51:54.184 GMT+02:00 D ApkUpdateInstaller: Beginning APK install...
[7.16.4] [main ] 2024-09-18 16:51:54.184 GMT+02:00 D ApkUpdateInstaller: Creating install session...
[7.16.4] [main ] 2024-09-18 16:51:54.188 GMT+02:00 D ApkUpdateInstaller: Writing APK data...
[7.16.4] [main ] 2024-09-18 16:51:54.516 GMT+02:00 D ApkUpdateInstaller: Committing session...
[7.16.4] [main ] 2024-09-18 16:51:54.517 GMT+02:00 W FrameRateTracker: Bad frame! Took 466 ms (42 dropped frames, or 2.14 FPS)
[7.17.4] [36   ] 2024-09-18 16:51:57.422 GMT+02:00 I SignalDatabase: Upgrading database: 243, 247
[7.17.4] [main ] 2024-09-18 16:51:57.422 GMT+02:00 I libsignal: rust/bridge/jni/src/logging.rs:160: Initializing libsignal version:0.56.0

That exception happened multiple times, I've added the first and last occurence here:

[7.17.4] [main ] 2024-09-18 16:51:58.857 GMT+02:00 I ApplicationMigrations: Received MigrationCompleteEvent for version 114. (Current: 114)
[7.17.4] [main ] 2024-09-18 16:51:58.857 GMT+02:00 I ApplicationMigrations: Updating last migration version to 114
[7.17.4] [main ] 2024-09-18 16:51:58.858 GMT+02:00 I ApplicationMigrations: Migration complete. Took 1406 ms.
[7.17.4] [main ] 2024-09-18 16:51:58.858 GMT+02:00 I VersionTracker: Upgraded from 1456 to 1461. Clearing client deprecation.
[7.17.4] [35   ] 2024-09-18 16:51:58.860 GMT+02:00 W LocalMetrics: Clearing local metrics store.
[7.17.4] [67   ] 2024-09-18 16:51:58.888 GMT+02:00 I JobRunner: [JOB::f0124c12-cd7a-46bb-a211-a2634e175e4d][FcmRefreshJob][4] Running job. (Time Since Submission: 1323 ms, Lifespan: 21600000 ms, Run Attempt: 1/3, Queue: FcmRefreshJob)
[7.17.4] [67   ] 2024-09-18 16:51:58.889 GMT+02:00 I JobRunner: [JOB::f0124c12-cd7a-46bb-a211-a2634e175e4d][FcmRefreshJob][4] Job finished with result SUCCESS in 2 ms. (Time Since Submission: 1324 ms, Lifespan: 21600000 ms, Run Attempt: 1/3, Queue: FcmRefreshJob)
[7.17.4] [65   ] 2024-09-18 16:51:58.889 GMT+02:00 I JobRunner: [JOB::ee4aaf83-bc3c-4555-81bc-f8c57fde34bc][StorageSyncJob][2] Running job. (Time Since Submission: 956 ms, Lifespan: 86400000 ms, Run Attempt: 1/3, Queue: StorageSyncingJobs)
[7.17.4] [66   ] 2024-09-18 16:51:58.901 GMT+02:00 I JobRunner: [JOB::a3a742cd-5972-458e-b580-3c6617c9043d][BackfillDigestJob][3] Running job. (Time Since Submission: 829 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
[7.17.4] [64   ] 2024-09-18 16:51:58.904 GMT+02:00 I JobRunner: [JOB::bad623f6-fdcb-49fc-838f-1c21160233f9][FontDownloaderJob][1] Running job. (Time Since Submission: 465 ms, Lifespan: 2592000000 ms, Run Attempt: 1/Unlimited, Queue: null)
[7.17.4] [42   ] 2024-09-18 16:51:58.905 GMT+02:00 I Job: [JOB::51b40b6a-56b4-401e-9b7e-414474d21102][RemoteConfigRefreshJob] onSubmit() (Time Since Submission: 47 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited, Queue: RemoteConfigRefreshJob)
[7.17.4] [42   ] 2024-09-18 16:51:58.905 GMT+02:00 I Job: [JOB::684b7ca6-d960-49a5-828e-3357a0ff5741][RefreshAttributesJob] onSubmit() (Time Since Submission: 47 ms, Lifespan: 2592000000 ms, Run Attempt: 1/Unlimited, Queue: RefreshAttributesJob)
[7.17.4] [64   ] 2024-09-18 16:51:58.911 GMT+02:00 D Fonts: Getting Script for Latn
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: [JOB::a3a742cd-5972-458e-b580-3c6617c9043d][BackfillDigestJob][3] Failing fatally due to an unexpected runtime exception. (Time Since Submission: 844 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 	at java.lang.System.arraycopy(Native Method)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
[7.17.4] [66   ] 2024-09-18 16:51:58.916 GMT+02:00 W JobRunner: 
[7.17.4] [67   ] 2024-09-18 16:51:58.934 GMT+02:00 I JobRunner: [JOB::68da3162-8ad6-44dc-a3b9-112e7f844889][AccountConsistencyWorkerJob][4] Running job. (Time Since Submission: 484 ms, Lifespan: 2592000000 ms, Run Attempt: 1/Unlimited, Queue: null)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 W BackfillDigestJob: Failed to backfill digest for AttachmentId::1!
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 	at java.lang.System.arraycopy(Native Method)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
[7.17.4] [66   ] 2024-09-18 16:51:58.948 GMT+02:00 E SignalUncaughtException: 
[7.17.4] [42   ] 2024-09-18 16:51:58.949 GMT+02:00 I Job: [JOB::b6ccf6b9-4bb5-40e0-98d5-ba9d71a01d84][CreateReleaseChannelJob] onSubmit() (Time Since Submission: 90 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: CreateReleaseChannelJob)
[7.17.4] [42   ] 2024-09-18 16:51:58.950 GMT+02:00 I Job: [JOB::e0084827-0d7a-4883-8c95-23d44dd64885][RetrieveRemoteAnnouncementsJob] onSubmit() (Time Since Submission: 90 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: RetrieveReleaseChannelJob)
[7.17.4] [63   ] 2024-09-18 17:03:29.471 GMT+02:00 I JobRunner: [JOB::750622c8-7a8a-441e-ac70-34efd0bfdc16][BackfillDigestJob][1] Job finished with result SUCCESS in 7 ms. (Time Since Submission: 691394 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
[7.17.4] [63   ] 2024-09-18 17:03:29.479 GMT+02:00 I JobRunner: [JOB::faef088d-0447-4ee0-bdd7-d82cb19c2c0c][BackfillDigestJob][1] Running job. (Time Since Submission: 691402 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: [JOB::faef088d-0447-4ee0-bdd7-d82cb19c2c0c][BackfillDigestJob][1] Failing fatally due to an unexpected runtime exception. (Time Since Submission: 691408 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 	at java.lang.System.arraycopy(Native Method)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
[7.17.4] [63   ] 2024-09-18 17:03:29.484 GMT+02:00 W JobRunner: 
[7.17.4] [65   ] 2024-09-18 17:03:29.489 GMT+02:00 D Fonts: Local font version found, returning immediate.
[7.17.4] [65   ] 2024-09-18 17:03:29.491 GMT+02:00 I FontVersion: Timeout interval not exceeded, using what we have.
[7.17.4] [65   ] 2024-09-18 17:03:29.491 GMT+02:00 I FontVersion: Deleting 0 files
[7.17.4] [65   ] 2024-09-18 17:03:29.492 GMT+02:00 D Fonts: Loaded manifest.
[7.17.4] [65   ] 2024-09-18 17:03:29.492 GMT+02:00 D Fonts: Getting Script for LATIN
[7.17.4] [65   ] 2024-09-18 17:03:29.492 GMT+02:00 D Fonts: Loaded script for locale.
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 W BackfillDigestJob: Failed to backfill digest for AttachmentId::422!
[7.17.4] [65   ] 2024-09-18 17:03:29.492 GMT+02:00 D Fonts: Local font version found, returning immediate.
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 	at java.lang.System.arraycopy(Native Method)
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
[7.17.4] [63   ] 2024-09-18 17:03:29.492 GMT+02:00 E SignalUncaughtException: 
[7.17.4] [65   ] 2024-09-18 17:03:29.494 GMT+02:00 I FontVersion: Timeout interval not exceeded, using what we have.

sjaeckel avatar Sep 18 '24 15:09 sjaeckel

This is happening for me since a few days, too. Seems to be the same bug:

09-16 13:05:55.558 19368 19878 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-2
09-16 13:05:55.558 19368 19878 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 19368
09-16 13:05:55.558 19368 19878 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
09-16 13:05:55.558 19368 19878 E AndroidRuntime:        at java.lang.System.arraycopy(Native Method)
09-16 13:05:55.558 19368 19878 E AndroidRuntime:        at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
09-16 13:05:55.558 19368 19878 E AndroidRuntime:        at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
09-16 13:05:55.558 19368 19878 E AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
09-16 13:05:55.558 19368 19878 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
09-16 13:05:55.558 19368 19878 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
09-16 13:05:56.484 19368 19879 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-3
09-16 13:05:56.484 19368 19879 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 19368
09-16 13:05:56.484 19368 19879 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
09-16 13:05:56.484 19368 19879 E AndroidRuntime:        at java.lang.System.arraycopy(Native Method)
09-16 13:05:56.484 19368 19879 E AndroidRuntime:        at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
09-16 13:05:56.484 19368 19879 E AndroidRuntime:        at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
09-16 13:05:56.484 19368 19879 E AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
09-16 13:05:56.484 19368 19879 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
09-16 13:05:56.484 19368 19879 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
09-16 13:05:59.844 19368 19880 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-4
09-16 13:05:59.844 19368 19880 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 19368
09-16 13:05:59.844 19368 19880 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
09-16 13:05:59.844 19368 19880 E AndroidRuntime:        at java.lang.System.arraycopy(Native Method)
09-16 13:05:59.844 19368 19880 E AndroidRuntime:        at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
09-16 13:05:59.844 19368 19880 E AndroidRuntime:        at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
09-16 13:05:59.844 19368 19880 E AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
09-16 13:05:59.844 19368 19880 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
09-16 13:05:59.844 19368 19880 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
09-18 20:49:05.756  1728  1827 I ActivityManager: Start proc 13547:org.thoughtcrime.securesms/u0a288 for next-top-activity {org.thoughtcrime.securesms/org.thoughtcrime.securesms.RoutingActivity}
09-18 20:49:06.461 13547 13665 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-1
09-18 20:49:06.461 13547 13665 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 13547
09-18 20:49:06.461 13547 13665 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
09-18 20:49:06.461 13547 13665 E AndroidRuntime:        at java.lang.System.arraycopy(Native Method)
09-18 20:49:06.461 13547 13665 E AndroidRuntime:        at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
09-18 20:49:06.461 13547 13665 E AndroidRuntime:        at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
09-18 20:49:06.461 13547 13665 E AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
09-18 20:49:06.461 13547 13665 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
09-18 20:49:06.461 13547 13665 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
09-18 20:49:06.646  1728  5811 I ActivityManager: Process org.thoughtcrime.securesms (pid 13547) has died: fg  TOP
09-18 20:49:06.657  1728  1809 W ActivityManager: setHasOverlayUi called on unknown pid: 13547

I have hundreds of these crashes and it's impossible to open signal for longer than a second without it closing on me.

Also happening on 7.17.4, but I installed the apk from the webpage in the hopes of making things better with that - it might have been a different version before that.

phryneas avatar Sep 18 '24 18:09 phryneas

same here with 7.17.4. and 7.17.5.

jewilke avatar Sep 19 '24 21:09 jewilke

this has been going on for 3 days. currently I have 7.17.5, updated today

jalso avatar Sep 20 '24 07:09 jalso

Same here. I was hopeful seeing the Signal 7.17.5 update so soon after 7.17.4 (which seemingly was the on that broke everything), but still no go. Interestingly (or at least potentially so), the update notification for 7.17.5 came, even though the download didn't work. (I'm on microG, no Google Play, so I'm assuming Signal is continually updating itself directly from the Signal website?)

I've used Signal for nearly 9 years and I have a comprehensive history of messages and media on my phone. I would find it quite distressing if there weren't a way out of this situation.

In my case, the logcat errors (that I could see as being relevant) were these:

09-19 15:41:18.040  8086  8251 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-4
09-19 15:41:18.040  8086  8251 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 8086
09-19 15:41:18.040  8086  8251 E AndroidRuntime: java.lang.NullPointerException
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.signal.core.util.CursorExtensionsKt.requireNonNullBlob(CursorExtensions.kt:57)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.readDataFileInfo(AttachmentTable.kt:2289)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.access$readDataFileInfo(AttachmentTable.kt:117)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable$getDataFileInfo$1.invoke(AttachmentTable.kt:1498)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable$getDataFileInfo$1.invoke(AttachmentTable.kt:1494)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.signal.core.util.CursorExtensionsKt.readToSingleObject(CursorExtensions.kt:108)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.getDataFileInfo(AttachmentTable.kt:1494)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.getDataStream(AttachmentTable.kt:1829)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.getAttachmentStream(AttachmentTable.kt:303)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:69)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at [[ ↑↑ Original Trace ↑↑ ]].(:0)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at [[ ↓↓ Exception Message ↓↓ ]].(:0)
09-19 15:41:18.040  8086  8251 E AndroidRuntime:        at null.(:0)
09-19 15:41:18.040 29438 29438 D MethodReflector: notifyChange is called
09-19 15:41:18.040  3695  4720 W ActivityManager:   Force finishing activity org.thoughtcrime.securesms/.PassphrasePromptActivity
09-19 15:41:18.050  3695  8597 W DropBoxManagerService: Dropping: data_app_crash (1438 > 0 bytes)
09-19 15:41:18.060  4521  4521 D Launcher.Model: reloadBadges entered.
09-19 15:41:18.060  8475  8475 D BadgeManager: onChange
09-19 15:41:18.060  8471  8582 E KeyPool : Error reading key pool.
09-19 15:41:18.060  8471  8582 E KeyPool : java.io.IOException: Error while finalizing cipher
09-19 15:41:18.060  8471  8582 E KeyPool :      at javax.crypto.CipherInputStream.fillBuffer(CipherInputStream.java:104)
09-19 15:41:18.060  8471  8582 E KeyPool :      at javax.crypto.CipherInputStream.read(CipherInputStream.java:155)
09-19 15:41:18.060  8471  8582 E KeyPool :      at java.io.InputStream.read(InputStream.java:162)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.crypto.android.c.a(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.crypto.android.c.c(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.credential.z.i(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.credential.z.c(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.credential.z.<init>(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.credential.z.a(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.f.a(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at com.entrust.identityGuard.mobilesc.sdk.f.doInBackground(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at android.os.AsyncTask$2.call(AsyncTask.java:295)
09-19 15:41:18.060  8471  8582 E KeyPool :      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-19 15:41:18.060  8471  8582 E KeyPool :      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
09-19 15:41:18.060  8471  8582 E KeyPool :      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
09-19 15:41:18.060  8471  8582 E KeyPool :      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
09-19 15:41:18.060  8471  8582 E KeyPool :      at java.lang.Thread.run(Thread.java:818)
09-19 15:41:18.060  8471  8582 E KeyPool : Caused by: javax.crypto.BadPaddingException: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
09-19 15:41:18.060  8471  8582 E KeyPool :      at org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
09-19 15:41:18.060  8471  8582 E KeyPool :      at org.conscrypt.OpenSSLCipher.doFinalInternal(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at org.conscrypt.OpenSSLCipher.engineDoFinal(Unknown Source)
09-19 15:41:18.060  8471  8582 E KeyPool :      at javax.crypto.Cipher.doFinal(Cipher.java:1476)
09-19 15:41:18.060  8471  8582 E KeyPool :      at javax.crypto.CipherInputStream.fillBuffer(CipherInputStream.java:102)
09-19 15:41:18.060  8471  8582 E KeyPool :      ... 16 more
09-19 15:41:39.010  8814  8875 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-2
09-19 15:41:39.010  8814  8875 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 8814
09-19 15:41:39.010  8814  8875 E AndroidRuntime: java.lang.NullPointerException
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.signal.core.util.CursorExtensionsKt.requireNonNullBlob(CursorExtensions.kt:57)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.readDataFileInfo(AttachmentTable.kt:2289)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.access$readDataFileInfo(AttachmentTable.kt:117)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable$getDataFileInfo$1.invoke(AttachmentTable.kt:1498)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable$getDataFileInfo$1.invoke(AttachmentTable.kt:1494)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.signal.core.util.CursorExtensionsKt.readToSingleObject(CursorExtensions.kt:108)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.getDataFileInfo(AttachmentTable.kt:1494)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.getDataStream(AttachmentTable.kt:1829)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.database.AttachmentTable.getAttachmentStream(AttachmentTable.kt:303)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:69)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at [[ ↑↑ Original Trace ↑↑ ]].(:0)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at [[ ↓↓ Exception Message ↓↓ ]].(:0)
09-19 15:41:39.010  8814  8875 E AndroidRuntime:        at null.(:0)

tbcx avatar Sep 20 '24 15:09 tbcx

Also happening to me with 7.17.5 as of today, Sep 20 2024.

SalBayat avatar Sep 20 '24 15:09 SalBayat

@tbcx there's fixes for this crash coming in 7.18

greyson-signal avatar Sep 21 '24 01:09 greyson-signal

@greyson-signal unfortunately, they seem to have a different crash than the rest of us - did you have a chance to look into the crash initially reported here (ArrayIndexOutOfBoundsException while running BackfillDigestJob)? Anything else we can do to help?

In the meantime: is downgrading an option? I haven't been able to use a messenger in a week :/

phryneas avatar Sep 21 '24 06:09 phryneas

I have the same crash since updating to 7.17.5. (ArrayIndexOutOfBoundsException in BackfillDigestJob).

reinerh avatar Sep 21 '24 17:09 reinerh

Same issue here since upgrade to 7.17.5 yesterday [Galaxy S10, Android 12]:

AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-1
AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 9383
AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
AndroidRuntime:        at java.lang.System.arraycopy(Native Method)
AndroidRuntime:        at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
AndroidRuntime:        at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
AndroidRuntime:        at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
AndroidRuntime:        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)

Unable to open Signal, crashes under 1sec once I try.

vbartik avatar Sep 22 '24 07:09 vbartik

I had the same symptoms since the 7.17.5 update. Deleting the app cache fixed it apparently, for now at least.

blaueente avatar Sep 22 '24 11:09 blaueente

Got the update to 7.17.5 today and started seeing the same crash (ArrayIndexOutOfBoundsException in BackfillDigestJob, Pixel 8a, stock Android 14). After reopening Signal a lot of times to troubleshoot and capture a log, it stopped crashing, though. Maybe the job has a maximum number of retries.

haffenloher avatar Sep 23 '24 11:09 haffenloher

@haffenloher Interesting find, this behaviour is also true on my FP4 (Android 14, microG). I just need to let it crash a certain amount and now I can start Signal... crazy.

Btw. the crash started with the 7.17.5 update.

Diapolo avatar Sep 23 '24 14:09 Diapolo

I can confirm this. The magic 'certain amount' was 153 for me.

vbartik avatar Sep 24 '24 06:09 vbartik

Good morning!

I upgraded to Signal 7.17.5 today and ran into the same issue as OP. Opening the Signal app caused it to show my conversations for a few frames and immediately crash with ArrayIndexOutOfBoundsException during BackfillDigestJob. Force-closing the app and clearing the cache did not fix it.

Thank you to @haffenloher for a workaround and to @Diapolo and @vbartik for sharing that it worked for you, it worked for me as well! Idk how many times I opened it debugging or how many times it has been crashing in the background, but I tapped the Signal icon about a dozen times in a row and it stopped crashing. Feels a little sluggish but it works for me.

I find it interesting that @tbcx is using MicroG and has a very long history. I am also using MicroG (specifically their Lineage fork), I install Signal using the Aurora Store client for Google Play, I have a very old history going back to at least 2015-06-14, and my backups are ~14 GB of mostly text. I wonder if anyone else having this issue is using MicroG, has a very old history, or both.

Logcat

Taken with LogFox using root while Signal was still crashing. This is an excerpt, but I have the entire syslog saved and will share it with the Signal Foundation upon request.

1727186030.760 10193 32597 32729 I JobRunner: [JOB::6111dafb-8371-47d5-a094-6a697c9739f8][BackfillDigestJob][1] Running job. (Time Since Submission: 2833367 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
1727186030.774 10193 32597 32729 W JobRunner: [JOB::6111dafb-8371-47d5-a094-6a697c9739f8][BackfillDigestJob][1] Failing fatally due to an unexpected runtime exception. (Time Since Submission: 2833381 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
1727186030.774 10193 32597 32729 W JobRunner: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.774 10193 32597 32729 W JobRunner: 	at java.lang.System.arraycopy(Native Method)
1727186030.774 10193 32597 32729 W JobRunner: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.774 10193 32597 32729 W JobRunner: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.774 10193 32597 32729 W JobRunner: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.774 10193 32597 32729 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.774 10193 32597 32729 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.851 10193 32597 32729 W BackfillDigestJob: Failed to backfill digest for AttachmentId::81!
1727186030.860 10193 32597 32729 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-1
1727186030.860 10193 32597 32729 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 32597
1727186030.860 10193 32597 32729 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.860 10193 32597 32729 E AndroidRuntime: 	at java.lang.System.arraycopy(Native Method)
1727186030.860 10193 32597 32729 E AndroidRuntime: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.860 10193 32597 32729 E AndroidRuntime: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.860 10193 32597 32729 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.860 10193 32597 32729 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.860 10193 32597 32729 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.860 10193 32597 32729 E SignalUncaughtException: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.860 10193 32597 32729 E SignalUncaughtException: 	at java.lang.System.arraycopy(Native Method)
1727186030.860 10193 32597 32729 E SignalUncaughtException: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.860 10193 32597 32729 E SignalUncaughtException: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.860 10193 32597 32729 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.860 10193 32597 32729 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.860 10193 32597 32729 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.876 10193 32597 32730 I JobRunner: [JOB::0c291d4f-fd7a-4af2-b20f-d9881c453f97][BackfillDigestJob][2] Running job. (Time Since Submission: 2833483 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
1727186030.882 10193 32597 32730 W JobRunner: [JOB::0c291d4f-fd7a-4af2-b20f-d9881c453f97][BackfillDigestJob][2] Failing fatally due to an unexpected runtime exception. (Time Since Submission: 2833489 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
1727186030.882 10193 32597 32730 W JobRunner: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.882 10193 32597 32730 W JobRunner: 	at java.lang.System.arraycopy(Native Method)
1727186030.882 10193 32597 32730 W JobRunner: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.882 10193 32597 32730 W JobRunner: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.882 10193 32597 32730 W JobRunner: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.882 10193 32597 32730 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.882 10193 32597 32730 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.918 10193 32597 32730 W BackfillDigestJob: Failed to backfill digest for AttachmentId::82!
1727186030.918 10193 32597 32730 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-2
1727186030.918 10193 32597 32730 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 32597
1727186030.918 10193 32597 32730 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.918 10193 32597 32730 E AndroidRuntime: 	at java.lang.System.arraycopy(Native Method)
1727186030.918 10193 32597 32730 E AndroidRuntime: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.918 10193 32597 32730 E AndroidRuntime: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.918 10193 32597 32730 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.918 10193 32597 32730 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.918 10193 32597 32730 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.918 10193 32597 32730 E SignalUncaughtException: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.918 10193 32597 32730 E SignalUncaughtException: 	at java.lang.System.arraycopy(Native Method)
1727186030.918 10193 32597 32730 E SignalUncaughtException: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.918 10193 32597 32730 E SignalUncaughtException: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.918 10193 32597 32730 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.918 10193 32597 32730 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.918 10193 32597 32730 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.919 10193 32597 32731 I JobRunner: [JOB::9cbfcb40-63c4-4dc3-96e6-e79b9cd6e004][BackfillDigestJob][3] Running job. (Time Since Submission: 2833526 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
1727186030.924 10193 32597 32731 W JobRunner: [JOB::9cbfcb40-63c4-4dc3-96e6-e79b9cd6e004][BackfillDigestJob][3] Failing fatally due to an unexpected runtime exception. (Time Since Submission: 2833531 ms, Lifespan: Immortal, Run Attempt: 1/3, Queue: BackfillDigestJob)
1727186030.924 10193 32597 32731 W JobRunner: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.924 10193 32597 32731 W JobRunner: 	at java.lang.System.arraycopy(Native Method)
1727186030.924 10193 32597 32731 W JobRunner: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.924 10193 32597 32731 W JobRunner: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.924 10193 32597 32731 W JobRunner: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.924 10193 32597 32731 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.924 10193 32597 32731 W JobRunner: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.969 10193 32597 32731 W BackfillDigestJob: Failed to backfill digest for AttachmentId::83!
1727186030.969 10193 32597 32731 E AndroidRuntime: FATAL EXCEPTION: signal-JobRunner-3
1727186030.969 10193 32597 32731 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 32597
1727186030.969 10193 32597 32731 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.969 10193 32597 32731 E AndroidRuntime: 	at java.lang.System.arraycopy(Native Method)
1727186030.969 10193 32597 32731 E AndroidRuntime: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.969 10193 32597 32731 E AndroidRuntime: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.969 10193 32597 32731 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.969 10193 32597 32731 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.969 10193 32597 32731 E AndroidRuntime: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)
1727186030.970 10193 32597 32731 E SignalUncaughtException: java.lang.ArrayIndexOutOfBoundsException: src.length=0 srcPos=0 dst.length=32 dstPos=0 length=32
1727186030.970 10193 32597 32731 E SignalUncaughtException: 	at java.lang.System.arraycopy(Native Method)
1727186030.970 10193 32597 32731 E SignalUncaughtException: 	at org.whispersystems.signalservice.internal.util.Util.split(Util.java:53)
1727186030.970 10193 32597 32731 E SignalUncaughtException: 	at org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream.<init>(AttachmentCipherOutputStream.java:39)
1727186030.970 10193 32597 32731 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobs.BackfillDigestJob.run(BackfillDigestJob.kt:82)
1727186030.970 10193 32597 32731 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:88)
1727186030.970 10193 32597 32731 E SignalUncaughtException: 	at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:51)

You can see it crashes on attachment 81, then attachment 82, then attachment 83. I am open-minded to sharing these attachments with the Signal Foundation for debugging or a test case, depending what they are, if you can help me identify and export them.

Signal Debug Log

The Signal > Settings > Help > Debug Log is attached.

signal-log-1727188975639.zip

Thank you for the work you guys do, let me know if I can help debug.

kj4ezj avatar Sep 24 '24 14:09 kj4ezj

@kj4ezj My history is also very old, 2013 and below. My backups are ~6 GB in size. Not sure if this crash-start-workaround is breaking other stuff?

Diapolo avatar Sep 24 '24 15:09 Diapolo

I'm also having a very old history, >10 years, and I have some groups that crash Signal when I try to look at the corresponding message of some old media.

  1. go to all media in an old group
  2. sort by oldest
  3. select the oldest and view it
  4. click on the date in the top left corner
  5. Boom

I've tried them until viewing doesn't crash anymore and if I scroll further into the past, the same happens.

sjaeckel avatar Sep 24 '24 16:09 sjaeckel

IIUC that should be the Exception

09-24 18:28:46.992 16166 16166 D VRI[MediaPreviewV2Activity]: visibilityChanged oldVisibility=true newVisibility=false
09-24 18:28:46.995 16166 16166 D BaseActivity: [MediaPreviewV2Activity] onStop()
09-24 18:28:46.996 16166 16166 D LoggingFragment: [MediaPreviewV2Fragment] onStop()
09-24 18:28:46.996 16166 16166 D BaseActivity: [MediaPreviewV2Activity] onDestroy()
09-24 18:28:46.997 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.997 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.997 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:46.998 16166 16166 D LoggingFragment: [MediaPreviewV2Fragment] onDestroy()
09-24 18:28:46.999 16166 16166 W WindowOnBackDispatcher: sendCancelIfRunning: i...@...
09-24 18:28:47.006 16166 16166 D BaseActivity: [ConversationActivity] onStop()
09-24 18:28:47.007 16166 16166 D LoggingFragment: [ConversationFragment] onStop()
09-24 18:28:47.007 16166 16166 D BaseActivity: [ConversationActivity] onDestroy()
09-24 18:28:47.010 16166 16166 D LoggingFragment: [ConversationFragment] onDestroy()
09-24 18:28:47.011 16166 16166 W WindowOnBackDispatcher: sendCancelIfRunning: i...@...
09-24 18:28:47.132 16166 20138 D ConversationListDataSou: [size(), UnarchivedConversationListDataSource, OFF] 1 ms
09-24 18:28:47.150 16166 21539 D ConversationListDataSou: [load(0, 45), UnarchivedConversationListDataSource, OFF] cursor: 17.87, cache-recipients: 0.34, recipient-resolve: 0.02, total: 18.23
09-24 18:28:47.665 16166 16311 D BufferPoolAccessor2.0: bufferpool2 0xb400007773dc10a8 : 5(15667200 size) total buffers - 5(15667200 size) used buffers - 219142/219150 (recycle/alloc) - 8/219151 (fetch/transfer)
09-24 18:28:47.692 16166 16203 D MemoryTracker: Used memory has decreased from 197898232 (188.73 MiB) to 158431464 (151.09 MiB)
09-24 18:28:48.198 16166 16166 D ThumbnailView: setBounds: update {minW430,maxW689,minH287,maxH918}
09-24 18:28:48.198 16166 16166 I ThumbnailView: loading part with id 991, progress 0, fast preflight id: null
09-24 18:28:48.198 16166 16166 D ThumbnailView: override: apply w602xh602
09-24 18:28:48.198 16166 16166 D GlideDrawableListeningT: Loaded null resource
09-24 18:28:48.629 16166 21544 D PartDataSource: Successfully loaded completed attachment file.
09-24 18:28:48.629 16166 21544 D DataSourceTransferListe: onTransferStart() for content://org.thoughtcrime.securesms/part/12106
09-24 18:28:49.203 16166 21539 D ConversationDataSource: [load(3300, 25), thread 94] messages: 6.24, extra-data: 12.24, models: 0.13, conversion: 0.72, header: 0.00, total: 19.34 || mentions: 2.62, is-quoted: 11.03, reactions: 4.19, attachments: 9.73, payments: 0.02, calls: 4.82 >> cpuTime: 32.43, wallTime: 12.10
09-24 18:28:49.229 16166 16166 I ThumbnailView: Not re-loading slide content://org.thoughtcrime.securesms/part/991
09-24 18:28:53.046 16166 16311 D BufferPoolAccessor2.0: bufferpool2 0xb400007773dc10a8 : 5(15667200 size) total buffers - 5(15667200 size) used buffers - 219196/219204 (recycle/alloc) - 8/219205 (fetch/transfer)
09-24 18:28:53.832 16166 16176 I crime.securesms: Background concurrent copying GC freed 92MB AllocSpace bytes, 96(3580KB) LOS objects, 48% free, 101MB/197MB, paused 76us,64us total 167.020ms
09-24 18:28:55.151 16166 21561 D PartDataSource: Successfully loaded completed attachment file.
09-24 18:28:55.151 16166 21561 D DataSourceTransferListe: onTransferStart() for content://org.thoughtcrime.securesms/part/12106
09-24 18:28:55.960 16166 21539 D ConversationDataSource: [load(3325, 25), thread 94] messages: 7.17, extra-data: 4.79, models: 0.11, conversion: 0.65, header: 0.00, total: 12.72 || mentions: 3.38, is-quoted: 2.87, reactions: 2.84, attachments: 3.71, payments: 0.02, calls: 1.57 >> cpuTime: 14.43, wallTime: 4.67
09-24 18:28:57.588 16166 16166 D AndroidRuntime: Shutting down VM
09-24 18:28:57.589 16166 16166 E AndroidRuntime: FATAL EXCEPTION: main
09-24 18:28:57.589 16166 16166 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 16166
09-24 18:28:57.589 16166 16166 E AndroidRuntime: org.thoughtcrime.securesms.recipients.Recipient$MissingAddressError: Missing address for 1
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.recipients.Recipient.requireServiceId(Recipient.kt:390)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.conversation.colors.Colorizer.getIncomingGroupSenderColor(Colorizer.kt:74)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemTextOnlyViewHolder.presentSenderNameColor(V2ConversationItemTextOnlyViewHolder.kt:582)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemTextOnlyViewHolder.bind(V2ConversationItemTextOnlyViewHolder.kt:256)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemTextOnlyViewHolder.bind(V2ConversationItemTextOnlyViewHolder.kt:69)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter.onBindViewHolder(MappingAdapter.java:119)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter.onBindViewHolder(MappingAdapter.java:113)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter.onBindViewHolder(MappingAdapter.java:45)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.NestedAdapterWrapper.onBindViewHolder(NestedAdapterWrapper.java:157)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.ConcatAdapterController.onBindViewHolder(ConcatAdapterController.java:378)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.ConcatAdapter.onBindViewHolder(ConcatAdapter.java:189)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7747)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6646)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6917)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:959)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:100)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:232)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:317)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8592)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
09-24 18:28:57.589 16166 16166 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: org.thoughtcrime.securesms.recipients.Recipient$MissingAddressError: Missing address for 1
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.recipients.Recipient.requireServiceId(Recipient.kt:390)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.conversation.colors.Colorizer.getIncomingGroupSenderColor(Colorizer.kt:74)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemTextOnlyViewHolder.presentSenderNameColor(V2ConversationItemTextOnlyViewHolder.kt:582)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemTextOnlyViewHolder.bind(V2ConversationItemTextOnlyViewHolder.kt:256)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemTextOnlyViewHolder.bind(V2ConversationItemTextOnlyViewHolder.kt:69)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter.onBindViewHolder(MappingAdapter.java:119)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter.onBindViewHolder(MappingAdapter.java:113)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter.onBindViewHolder(MappingAdapter.java:45)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.NestedAdapterWrapper.onBindViewHolder(NestedAdapterWrapper.java:157)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.ConcatAdapterController.onBindViewHolder(ConcatAdapterController.java:378)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.ConcatAdapter.onBindViewHolder(ConcatAdapter.java:189)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7747)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6646)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6917)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at android.os.Handler.handleCallback(Handler.java:959)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at android.os.Handler.dispatchMessage(Handler.java:100)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at android.os.Looper.loopOnce(Looper.java:232)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at android.os.Looper.loop(Looper.java:317)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at android.app.ActivityThread.main(ActivityThread.java:8592)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at java.lang.reflect.Method.invoke(Native Method)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
09-24 18:28:57.589 16166 16166 E SignalUncaughtException: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
09-24 18:28:57.650 16166 16166 I JobManager: Successfully flushed.
09-24 18:28:57.662 16166 16166 I Process : Sending signal. PID: 16166 SIG: 9

sjaeckel avatar Sep 24 '24 16:09 sjaeckel

I'm also having a very old history, >10 years, and I have some groups that crash Signal when I try to look at the corresponding message of some old media.

  1. go to all media in an old group
  2. sort by oldest
  3. select the oldest and view it
  4. click on the date in the top left corner
  5. Boom

I've tried them until viewing doesn't crash anymore and if I scroll further into the past, the same happens.

First of all, I didn't know you could click the date there and jump to the message...do you know how long I have wanted that, wondered why it isn't there, and how much time it would have saved me?!?!? Thanks a ton, haha.

Anyways, I was not able to replicate your bug. It is hard to find such old media in buried threads, but I tried your steps using group chat photos as old as 2016-06-20 and DMed photos as old as 2015-06-03.

kj4ezj avatar Sep 24 '24 17:09 kj4ezj

@tbcx there's fixes for this crash coming in 7.18

So, there was really no reason to expect that the 7.17.6 release would fix this, and I didn't really, but I had to try anyway (nothing to lose!) and as expected. 7.17.6 still crashes Signal before I can finish typing my password. Fingers crossed for 7.18!

tbcx avatar Sep 25 '24 07:09 tbcx

It does indeed stop crashing after opening it many times in a row, but now I have no option to unlock the app (I enabled screen lock).

Tapping on the "unlock" button does nothing. It seems that the workaround does not work for everyone :/.

I hope 7.18 is rolled out quickly, as Signal is my main messenger application.

shaaati avatar Sep 27 '24 07:09 shaaati

Same here, BUT in my case (and maybe in case of a portion of others as well), it doesn't crash if I am fast enough to click open a chat, instead it BACKS OUT of the chat and the app.

If I am fast enough, I can keep up with Signal dance and keep re-entering settings or chats in turn with Signal doing "one step back" every half second or so. Only when I stop has Signal enough time for two consequent back steps leading to backing out of the app (not crashing).

If I don't engage in this dance at all, then it crashes within less than a second after launching.

RadekPilich avatar Sep 29 '24 19:09 RadekPilich

Actually, I still don't have 7.18 rolled out for me, but after a few more tries when this first happened, I could get the unlock function to work and as a quick fix I have disabled app locking in Signal.

My thought was that this could give me a working app by opening it just often enough once this would happen the next time. Well... It hasn't happened since. I have even restarted the phone in the meantime, but Signal just keeps working.

I don't think this needs more debugging. As a fix is already scheduled, the root cause is likely already identified. But maybe this comment can help others who experience the same issue.

shaaati avatar Oct 01 '24 10:10 shaaati

7.18.2 downloaded from the website, and it works. My phone is Signal-capable again. I'm delighted, and so incredibly, incredibly relieved. Much thanks to the Signal developers for coming through.

tbcx avatar Oct 01 '24 22:10 tbcx

I also got the 7.18.2 update via the Play Store, but sadly it did not solve the originally reported crash (java.lang.ArrayIndexOutOfBoundsException).

EmilVogt avatar Oct 02 '24 00:10 EmilVogt

I just updated to 7.18.2 and the problem persists. This phone is a Samsung S7 with Android 8.0.0.

tnixeu avatar Oct 02 '24 05:10 tnixeu

Same, no luck after last update. OnePlus 9 Pro with Android 14.

RadekPilich avatar Oct 02 '24 09:10 RadekPilich

it doesn't crash if I am fast enough to click open a chat, instead it BACKS OUT of the chat and the app.

That's also the behavior I tried to describe in the initial report.

And just FTR I have another phone that just updated to 7.18.2 and the problem persists.

Also the workaround to restart Signal until it started again worked in this case.

sjaeckel avatar Oct 05 '24 07:10 sjaeckel

Is there an update if version 7.19.1 solves this issue? I'm currently writing emails instead of using Signal.

EmilVogt avatar Oct 07 '24 06:10 EmilVogt

As a workaround I managed to connect Signal to the desktop app before crashing. For that I scanned to QR code via a QR code reader app, which directly opens the signal sync page.

tnixeu avatar Oct 07 '24 09:10 tnixeu

Also the workaround to restart Signal until it started again worked in this case.

If this really works there must be something more to the recipe. I have made a Tasker script to launch crash Signal hundred times in a row and it didn't change anything and the crashing persists.

RadekPilich avatar Oct 07 '24 10:10 RadekPilich