Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content

OpenKeyChain crashes

  • /e/ version: 0.7-2020010636666
  • Device model: Samsung S9+ SM-G965F
  • When it started to occur: after ROM update
  • Reproducible with the last /e/ version: yes
  • Reproducible with LineageOS: no idea

Summary

OpenKeyCHain craches when trying to decrypt an uncrypted email.
  • The device is unusable
  • The bug is the source of a data loss or a big waste of time
  • The bug concerns a 3rd party app
  • The bug concerns security
  • The bug concerns privacy

The problem

Steps to reproduce

Open an uncrypted email. Or access OpenKeyChain from the settings menu

What is the current behavior?

When trying to open a crypted email, email will not open and message on screen will appear "OpenKeyChain has stopped working"

What is the expected correct behavior? Crypted email should open to be read.

Technical informations

Relevant logs (adb logcat)

01-15 08:10:23.611  4333  5205 I ActivityManager: Start proc 19812:org.sufficientlysecure.keychain:remote_api_2/u0a87 for service org.sufficientlysecure.keychain/.remote.OpenPgpService2
01-15 08:10:23.774  4333  4509 I ActivityManager: Start proc 19833:org.sufficientlysecure.keychain:passphrase_cache/u0a87 for service org.sufficientlysecure.keychain/.service.PassphraseCacheService
01-15 08:10:23.853  4333  5205 I ActivityManager: START u0 {cmp=org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity (has extras)} from uid 10087
01-15 08:10:23.875  4333  4509 I ActivityManager: Start proc 19851:org.sufficientlysecure.keychain/u0a87 for activity org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity
01-15 08:10:23.942  4333  5205 W JobSchedulerService: Too many jobs for uid 10087
--------- beginning of crash
01-15 08:10:23.944 19851 19867 E AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
01-15 08:10:23.944 19851 19867 E AndroidRuntime: Process: org.sufficientlysecure.keychain, PID: 19851
01-15 08:10:23.944 19851 19867 E AndroidRuntime: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2021)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:1959)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:85)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:64)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at androidx.work.impl.Schedulers.scheduleInternal(Schedulers.java:98)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at androidx.work.impl.Schedulers.schedule(Schedulers.java:69)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:109)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:81)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
01-15 08:10:23.944 19851 19867 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
01-15 08:10:23.946  4333  5205 W ActivityManager:   Force finishing activity org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity
01-15 08:10:23.948  4333  5205 W ActivityManager:   Force finishing activity foundation.e.mail/.activity.MessageList
01-15 08:10:23.958  4333  4357 I ActivityManager: Showing crash dialog for package org.sufficientlysecure.keychain u0
01-15 08:10:24.121  4333  4509 I ActivityManager: Killing 16767:com.android.webview:sandboxed_process0/u0a77i22 (adj 0): isolated not needed
01-15 08:10:24.171  4333  4359 D KernelUidCpuTimeReader: Removing uids 99022-99022
01-15 08:10:27.784  4333  4361 D AutofillManagerService: Close system dialogs
01-15 08:10:27.788  4333  5205 I ActivityManager: Killing 19851:org.sufficientlysecure.keychain/u0a87 (adj 900): crash
01-15 08:10:27.967  4333  4363 W ActivityManager: setHasOverlayUi called on unknown pid: 19851
01-15 08:10:28.016  4333  4394 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0
01-15 08:10:29.737  4333  5205 I ActivityManager: Start proc 19894:com.android.systemui:screenshot/u0a29 for service com.android.systemui/.screenshot.TakeScreenshotService
01-15 08:10:32.782  4333  4357 D AutofillManagerService: onBackKeyPressed()
01-15 08:10:33.138  4333  4355 I UsageStatsService: User[0] Flushing usage stats to disk
01-15 08:10:34.538  4333  7358 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=foundation.e.mail/.activity.Accounts bnds=[120,196][329,405]} from uid 10004
01-15 08:10:36.020  4333  5205 I ActivityManager: START u0 {flg=0x14000000 cmp=foundation.e.mail/.activity.MessageList (has extras)} from uid 10077
01-15 08:10:38.914  4333  7358 I ActivityManager: START u0 {cmp=org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity (has extras)} from uid 10087
01-15 08:10:38.942  4333  7358 I ActivityManager: Start proc 19950:org.sufficientlysecure.keychain/u0a87 for activity org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity
01-15 08:10:39.017  4333  7358 W JobSchedulerService: Too many jobs for uid 10087
01-15 08:10:39.018 19950 19966 E AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
01-15 08:10:39.018 19950 19966 E AndroidRuntime: Process: org.sufficientlysecure.keychain, PID: 19950
01-15 08:10:39.018 19950 19966 E AndroidRuntime: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2021)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:1959)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:85)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:64)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at androidx.work.impl.Schedulers.scheduleInternal(Schedulers.java:98)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at androidx.work.impl.Schedulers.schedule(Schedulers.java:69)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:109)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:81)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
01-15 08:10:39.018 19950 19966 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
01-15 08:10:39.021  4333  7358 W ActivityManager:   Force finishing activity org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity
01-15 08:10:39.024  4333  7358 W ActivityManager:   Force finishing activity foundation.e.mail/.activity.MessageList
01-15 08:10:39.032  4333  4357 I ActivityManager: Showing crash dialog for package org.sufficientlysecure.keychain u0
01-15 08:10:44.978  4333  4361 D AutofillManagerService: Close system dialogs
01-15 08:10:44.982  4333  7358 I ActivityManager: Killing 19950:org.sufficientlysecure.keychain/u0a87 (adj 900): crash
01-15 08:10:45.132  4333  4363 W ActivityManager: setHasOverlayUi called on unknown pid: 19950
01-15 08:10:45.212  4333  4394 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0
01-15 08:10:46.886  4333  4357 D AutofillManagerService: onBackKeyPressed()
01-15 08:10:47.711  4333  4357 D AutofillManagerService: onBackKeyPressed()
01-15 08:10:49.990  4333  7358 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=foundation.e.mail/.activity.Accounts bnds=[120,196][329,405]} from uid 10004
01-15 08:10:52.295  4333  5176 I ActivityManager: START u0 {flg=0x14000000 cmp=foundation.e.mail/.activity.MessageList (has extras)} from uid 10077
01-15 08:10:54.226  4333  4345 I ActivityManager: START u0 {cmp=org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity (has extras)} from uid 10087
01-15 08:10:54.255  4333  4345 I ActivityManager: Start proc 19995:org.sufficientlysecure.keychain/u0a87 for activity org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity
01-15 08:10:54.333  4333  4345 W JobSchedulerService: Too many jobs for uid 10087
01-15 08:10:54.334 19995 20014 E AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
01-15 08:10:54.334 19995 20014 E AndroidRuntime: Process: org.sufficientlysecure.keychain, PID: 19995
01-15 08:10:54.334 19995 20014 E AndroidRuntime: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2021)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:1959)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:85)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:64)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at androidx.work.impl.Schedulers.scheduleInternal(Schedulers.java:98)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at androidx.work.impl.Schedulers.schedule(Schedulers.java:69)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:109)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:81)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
01-15 08:10:54.334 19995 20014 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
01-15 08:10:54.336  4333  4345 W ActivityManager:   Force finishing activity org.sufficientlysecure.keychain/.remote.ui.RemotePassphraseDialogActivity
01-15 08:10:54.338  4333  4345 W ActivityManager:   Force finishing activity foundation.e.mail/.activity.MessageList
01-15 08:10:54.341  4333  4357 I ActivityManager: Showing crash dialog for package org.sufficientlysecure.keychain u0
01-15 08:10:57.183  4333  4361 D AutofillManagerService: Close system dialogs
01-15 08:10:57.184  4333  4345 I ActivityManager: Killing 19995:org.sufficientlysecure.keychain/u0a87 (adj 900): crash
01-15 08:10:57.202  4333  4484 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=foundation.e.blisslauncher/.features.launcher.LauncherActivity (has extras)} from uid 1000
01-15 08:10:57.311  4333  4363 W ActivityManager: setHasOverlayUi called on unknown pid: 19995
01-15 08:10:57.414  4333  4394 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0
01-15 08:10:58.601  4333  5178 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings bnds=[120,1094][329,1303]} from uid 10004
01-15 08:10:58.634  4333  5178 I ActivityManager: Start proc 20031:com.android.settings/1000 for activity com.android.settings/.Settings
01-15 08:10:58.806  4333  4359 E BatteryExternalStatsWorker: no controller energy info supplied for wifi
01-15 08:10:58.806  4333  4359 E BatteryExternalStatsWorker: no controller energy info supplied for bluetooth
01-15 08:11:04.657  4333  5178 I ActivityManager: START u0 {flg=0x8000 cmp=com.android.settings/.Settings$OpenKeychainActivity (has extras)} from uid 1000
01-15 08:11:04.719  4333  5178 I ActivityManager: START u0 {act=android.intent.action.MAIN cmp=org.sufficientlysecure.keychain/.ui.MainActivity} from uid 1000
01-15 08:11:04.743  4333  4345 I ActivityManager: Start proc 20085:org.sufficientlysecure.keychain/u0a87 for activity org.sufficientlysecure.keychain/.ui.MainActivity
01-15 08:11:04.821  4333  4345 W JobSchedulerService: Too many jobs for uid 10087
01-15 08:11:04.823 20085 20101 E AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
01-15 08:11:04.823 20085 20101 E AndroidRuntime: Process: org.sufficientlysecure.keychain, PID: 20085
01-15 08:11:04.823 20085 20101 E AndroidRuntime: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2021)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:1959)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:85)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:64)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at androidx.work.impl.Schedulers.scheduleInternal(Schedulers.java:98)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at androidx.work.impl.Schedulers.schedule(Schedulers.java:69)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:109)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:81)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
01-15 08:11:04.823 20085 20101 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
01-15 08:11:04.824  4333  5178 W ActivityManager:   Force finishing activity org.sufficientlysecure.keychain/.ui.MainActivity
01-15 08:11:04.828  4333  4357 I ActivityManager: Showing crash dialog for package org.sufficientlysecure.keychain u0
01-15 08:11:05.137  4333  4359 E BatteryExternalStatsWorker: no controller energy info supplied for wifi
01-15 08:11:05.137  4333  4359 E BatteryExternalStatsWorker: no controller energy info supplied for bluetooth
01-15 08:11:05.371  4333  4394 W WindowManager: Failed looking up window callers=com.android.server.wm.WindowManagerService.windowForClientLocked:5829 com.android.server.wm.WindowManagerService.removeWindow:1716 com.android.server.wm.Session.remove:222 
01-15 08:11:06.585  4333  4361 D AutofillManagerService: Close system dialogs
01-15 08:11:06.593  4333  4484 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=foundation.e.blisslauncher/.features.launcher.LauncherActivity (has extras)} from uid 1000
01-15 08:11:06.623  4333  5178 I ActivityManager: Killing 20085:org.sufficientlysecure.keychain/u0a87 (adj 900): crash

Relevant screenshots

Solutions

Workaround

Possible fixes

Edited by Romain Hunault