signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.59k stars 6.14k forks source link

Signal 6.33.3 Android Crashing LG Nexus 5 #13183

Open Hutchinman opened 1 year ago

Hutchinman commented 1 year ago

Bug description

Signal is crashing 2-5 seconds after opening the app. Cannot keep app from crashing long enough to get a debug log link.

Steps to reproduce

Actual result: Signal flashes white and sometimes a pop-up window says that Signal has stopped working. In other words, it crashes. Expected result: Signal stays open.

Screenshots

n/a

Device info

Device: Google LG Nexus 5 Android version: Stock 6.0.1, Android security patch 10/5/2016 Signal version: 6.33.3

Link to debug log

Cannot get a debug log before the app crashes.

Dadealos commented 1 year ago

I just had the exact same problem with version 6.34.2 on a Pixel 6 Pro. In my case, my girlfriend sent me a bunch of TikTok links followed by a sticker. Opening Signal to the main screen would cause it to automatically close in about 2 seconds. However, if I opened it directly to any conversation besides her (via the widget or share interface), it would work fine (as long as I didn't back out to the main screen.)

Clearing the cache and rebooting did nothing. I texted her and asked her to delete the sticker - after she did, Signal worked fine again.

Hope that helps. Good luck!

Hutchinman commented 1 year ago

Unfortunately, I don't know about any stickers in any messages. I can't see my messages as I can't keep the app open long enough to get to them. I am stuck on the log in 'passphrase' screen. Thanks for the intormation though.

If stickers are the issue, then maybe the devs can fix it.

alex-signal commented 1 year ago

@Hutchinman Do you feel comfortable trying to capture normal ADB logs for this?

https://developer.android.com/tools/adb

Unfortunately, without more information, it's hard to diagnose. Did 6.33.2 work fine? That'd help us track down the offending change.

Hutchinman commented 1 year ago

I'll take a look and see if I can get it working. Is this guide in the top comment of this Reddit thread still accurate for getting the logs using ADB?

https://www.reddit.com/r/signal/comments/quwx29/is_there_a_way_to_get_debug_logs_if_app_wont_open/

For 6.33.2, it crashed as well. I waited for a new version before reporting the bug just to see if that fixed the issue. I didn't 100% know if someone had already reported the crash bug, despite me looking around the issue tracker.

The last version on this phone of mine that I used without it crashing was 5.52.5 back in October 2022. I didn't use the phone for almost a year after that.

chromosapiens commented 1 year ago

Seems like I have the same issue, therefore I will post here instead of creating a new issue. The app crashes every time within seconds after the start no matter what I do.

I don't want to lose my history. Cleared the cache, rebooted, updated the OS, freed some phone storage... changed nothing. Bothered to get the adb logs (c.f. below).

Device info

Device: OnePlus 8 Pro Android version: Android 13 (Oxygen 13.1) Signal version: 6.33.3

Debug log

--------- beginning of crash
09-25 22:10:39.172 E/AndroidRuntime(12926): FATAL EXCEPTION: pool-17-thread-1
09-25 22:10:39.172 E/AndroidRuntime(12926): Process: org.thoughtcrime.securesms, PID: 12926
09-25 22:10:39.172 E/AndroidRuntime(12926): android.database.sqlite.SQLiteException: FullCode: 1 | ErrorCode: 1 | ExtendedErrorCode: 0 | Message: SQL logic error | ExtraMessage: null
09-25 22:10:39.172 E/AndroidRuntime(12926):     at net.zetetic.database.sqlcipher.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at net.zetetic.database.sqlcipher.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:770)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at net.zetetic.database.sqlcipher.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:758)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at net.zetetic.database.sqlcipher.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:71)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at net.zetetic.database.sqlcipher.SQLiteDatabase.delete(SQLiteDatabase.java:1794)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.SQLiteDatabase.lambda$delete$14(SQLiteDatabase.java:391)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.SQLiteDatabase.$r8$lambda$M2dGB_vmS-aoBgck2zt6F2h6rb4(SQLiteDatabase.java:0)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.SQLiteDatabase$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.SQLiteDatabase.traceSql(SQLiteDatabase.java:112)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.SQLiteDatabase.delete(SQLiteDatabase.java:391)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.SQLiteDatabase.delete(SQLiteDatabase.java:251)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.signal.core.util.DeleteBuilderPart2.run(SQLiteDatabaseExtensions.kt:317)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.MessageTable.deleteMessage(MessageTable.kt:3393)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.MessageTable.deleteMessage(MessageTable.kt:3380)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.database.MessageTable.deleteMessage(MessageTable.kt:3371)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at org.thoughtcrime.securesms.service.ExpiringMessageManager$ProcessTask.run(ExpiringMessageManager.java:97)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
09-25 22:10:39.172 E/AndroidRuntime(12926):     at java.lang.Thread.run(Thread.java:1012)
09-25 22:10:39.172 E/SignalUncaughtException(12926): android.database.sqlite.SQLiteException: FullCode: 1 | ErrorCode: 1 | ExtendedErrorCode: 0 | Message: SQL logic error | ExtraMessage: null
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at net.zetetic.database.sqlcipher.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at net.zetetic.database.sqlcipher.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:770)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at net.zetetic.database.sqlcipher.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:758)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at net.zetetic.database.sqlcipher.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:71)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at net.zetetic.database.sqlcipher.SQLiteDatabase.delete(SQLiteDatabase.java:1794)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.SQLiteDatabase.lambda$delete$14(SQLiteDatabase.java:391)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.SQLiteDatabase.$r8$lambda$M2dGB_vmS-aoBgck2zt6F2h6rb4(SQLiteDatabase.java:0)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.SQLiteDatabase$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.SQLiteDatabase.traceSql(SQLiteDatabase.java:112)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.SQLiteDatabase.delete(SQLiteDatabase.java:391)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.SQLiteDatabase.delete(SQLiteDatabase.java:251)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.signal.core.util.DeleteBuilderPart2.run(SQLiteDatabaseExtensions.kt:317)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.MessageTable.deleteMessage(MessageTable.kt:3393)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.MessageTable.deleteMessage(MessageTable.kt:3380)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.database.MessageTable.deleteMessage(MessageTable.kt:3371)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at org.thoughtcrime.securesms.service.ExpiringMessageManager$ProcessTask.run(ExpiringMessageManager.java:97)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
09-25 22:10:39.172 E/SignalUncaughtException(12926):    at java.lang.Thread.run(Thread.java:1012)

Since it is SQLite, files may indeed be the problem.

There are two culprits that come to my mind. First one is the most suspicious: I sent a high resolution PNG from a GoPro (almost 30 MB 5568x4872px). Signals gallery preview was working erratically (no thumbnail was showing for this image). After selecting the image there was still no thumbnail. Sending was successful though and the image showed up in the conversation (maybe after compression it was depictable). Around the same time I also sent a .torrent file.

Neither of the files had extremely long file names nor obscure characters in the file name.

After both actions is was working at least for some time (if I remember correctly I went to sleep after sending the files and crashes started next morning after viewing some messages). So maybe this is misleading.

EDIT: It might be also noteworthy that my signal storage reached almost 20GB after years.

Hutchinman commented 1 year ago

@alex-signal I think I did it using ADB. I attached the crash log below.

SignalCrashLog.txt

chromosapiens commented 1 year ago

Same error in Beta Version 6.34.2 btw.

cody-signal commented 1 year ago

@chromosapiens your issue is actually different, and I fear, more dire. It seems like you are hitting a general SQLite exception when attempting to delete a message, and I'm at a bit of a loss on what to do about it. I don't think it's attachments related as that wouldn't really do much to the database. I'll ask around.

@Hutchinman your issue is related to a broken migration from trying to update from a much older install. I'll see if we can try to address it or if you don't mind losing data from the 1yr old+ install, you can clear data and start afresh.

chromosapiens commented 1 year ago

@cody-signal thanks for your answer

I got another portential pin point what caused the problem: I noticed that hours after crashing several times multiple new contacts appeared on my signal (a can see the messages like "Andy joined Signal" for a split second before it crashes again). This is due to a google account I recently added to the phone that synced some contacts from another device.

I thought this to be unrelated first because it happened several hours after the first crash. But I now looked up the time when the google app actually synced the account and its a perfect fit time wise, i.e. the contacts sync happened around the time when the crashes started. I saw the contacts appear in signal only later, probably because it only had a second or so for processing each time I opened the crashing app.

Could the updating of contacts be something with SQLite?

Just an idea, thanks for looking into this!

cody-signal commented 1 year ago

Thanks for the follow up, not likely related but for sure highly correlated.

Hutchinman commented 1 year ago

@cody-signal

The reason I updated the app was to get the data, i.e. my messages, and move it to my current phone. I'll appreciate anything you can do to fix it.

Hutchinman commented 11 months ago

@cody-signal

Hey, I'm just checking in to see if any headway has been made in fixing this. Again, I appreciate all you guys do. Also, just in case it is relevant, it is still crashing on version 6.37.2.

stale[bot] commented 9 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Hutchinman commented 9 months ago

@cody-signal Sorry to bother again, I hope you are having a lovely holiday season. Has there been any progress on this? I appreciate your efforts!

cody-signal commented 9 months ago

Thanks for following up @Hutchinman, this sort of fell off my plate. It doesn't seem like an issue many folks are experiencing as far as we can tell, and so it became deprioritized relative to everything else. I bumped it again with the team for any insights.

Hutchinman commented 9 months ago

@cody-signal Thank you so much! I know you guys are super busy, and I am but one of many users, but I appreciate any help you can give.

stale[bot] commented 7 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Hutchinman commented 7 months ago

@cody-signal Bumping this again. I have seen several commits that reference this bug, but they don't appear to have fixed the issue for me. I have tested Signal on the version 6.47.5, the most up-to-date available at the moment and it is still crashing. Thanks again for your help.

stale[bot] commented 5 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Hutchinman commented 5 months ago

Just updating that this is still happening in 7.5.2.

stale[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Hutchinman commented 3 months ago

Updating that this is still occurring in version 7.9.6.

cody-signal commented 3 months ago

Hey @Hutchinman, we aren't likely to look into this at this point. I've bumped it a few times since you opened it with the team and we just don't know what causes it and the incident rate isn't high enough to bump in priority.

Our backup format is defined in the code and is open source so it's possible to extract the data without using Signal. Some google searching may help point you in a direction if you really wish to recover the data from the backup.

stale[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.