Signal-android: 4.16.9 Can't "see full conversation"

Created on 6 Mar 2018  路  33Comments  路  Source: signalapp/Signal-Android

I have:


Bug description

Hi!

  • I just upgraded to Signal 4.16.9 via Google Play Store.
  • When I launched it, the database went through the migration, and I was able to access my conversations.
  • However, "See full conversation" seems to do nothing. After a few minutes, the app becomes unstable and crashes.

I don't see anything relevant in the logs before the restart:

03-06 13:24:25.758  1525  7967 W MmsSmsDatabase: Executing query: SELECT _id, unique_row_id, body, type, thread_id, address, address_device_id, subject, date_sent, date_received, m_type, msg_box, status, part_count, ct_l, tr_id, m_size, exp, st, delivery_receipt_count, read_receipt_count, mismatched_identities, network_failures, subscription_id, expires_in, expire_started, notified, transport_type, attachment_id, unique_id, mid, data_size, file_name, _data, thumbnail, ct, cl, digest, fast_preflight_id, voice_note, cd, name, pending_push FROM (SELECT DISTINCT date_sent AS date_sent, date AS date_received, _id, 'SMS::' || _id || '::' || date_sent AS unique_row_id, NULL AS attachment_id, body, read, thread_id, type, address, address_device_id, subject, NULL AS m_type, NULL AS msg_box, status, NULL AS part_count, NULL AS ct_l, NULL AS tr_id, NULL AS m_size, NULL AS exp, NULL AS st, delivery_receipt_count, read_receipt_count, mismatched_identities, subscription_id, expires_in, expire_started, notified, NULL AS network_failures, 'sms' AS transport_type, NULL AS unique_id, NULL AS mid, NULL AS data_size, NULL AS file_name, NULL AS _data, NULL AS thumbnail, NULL AS ct, NULL AS cl, NULL AS digest, NULL AS fast_preflight_id, NULL AS voice_note, NULL AS cd, NULL AS name, NULL AS pending_push FROM sms WHERE (read = 0 AND notified = 0) UNION ALL SELECT DISTINCT date AS date_sent, date_received AS date_received, mms._id AS _id, 'MMS::' || mms._id || '::' || date AS unique_row_id, part._id AS attachment_id, body, read, thread_id, NULL AS type, address, address_device_id, NULL AS subject, m_type, msg_box, NULL AS status, part_count, ct_l, tr_id, m_size, exp, st, delivery_receipt_count, read_receipt_count, mismatched_identities, subscription_id, expires_in, expire_started, notified, network_failures, 'mms' AS transport_type, unique_id, mid, data_size, file_name, _data, thumbnail, ct, cl, digest, fast_preflight_id, voice_note, cd, name, pending_push FROM mms LEFT OUTER JOIN part ON part._id =  (SELECT part._id FROM part WHERE part.mid = mms._id LIMIT 1) WHERE (read = 0 AND notified = 0) ORDER BY date_received ASC)
03-06 13:24:25.758  1525  1611 W MmsSmsDatabase: Executing query: SELECT _id, unique_row_id, body, type, thread_id, address, , subject, date_sent, date_received, m_type, msg_box, status, part_count, ct_l, tr_id, m_size, exp, st, delivery_receipt_count, read_receipt_count, mismatched_identities, network_failures, subscription_id, expires_in, expire_started, notified, transport_type, attachment_id, unique_id, mid, data_size, file_name, _data, thumbnail, ct, cl, digest, fast_preflight_id, voice_note, cd, name, pending_push FROM (SELECT DISTINCT date_sent AS date_sent, date AS date_received, _id, 'SMS::' || _id || '::' || date_sent AS unique_row_id, NULL AS attachment_id, body, read, thread_id, type, address, address_device_id, subject, NULL AS m_type, NULL AS msg_box, status, NULL AS part_count, NULL AS ct_l, NULL AS tr_id, NULL AS m_size, NULL AS exp, NULL AS st, delivery_receipt_count, read_receipt_count, mismatched_identities, subscription_id, expires_in, expire_started, notified, NULL AS network_failures, 'sms' AS transport_type, NULL AS unique_id, NULL AS mid, NULL AS data_size, NULL AS file_name, NULL AS _data, NULL AS thumbnail, NULL AS ct, NULL AS cl, NULL AS digest, NULL AS fast_preflight_id, NULL AS voice_note, NULL AS cd, NULL AS name, NULL AS pending_push FROM sms WHERE (thread_id = 4) UNION ALL SELECT DISTINCT date AS date_sent, date_received AS date_received, mms._id AS _id, 'MMS::' || mms._id || '::' || date AS unique_row_id, part._id AS attachment_id, body, read, thread_id, NULL AS type, address, address_device_id, NULL AS subject, m_type, msg_box, NULL AS status, part_count, ct_l, tr_id, m_size, exp, st, delivery_receipt_count, read_receipt_count, mismatched_identities, subscription_id, expires_in, expire_started, notified, network_failures, 'mms' AS transport_type, unique_id, mid, data_size, file_name, _data, thumbnail, ct, cl, digest, fast_preflight_id, voice_note, cd, name, pending_push FROM mms LEFT OUTER JOIN part ON part._id =  (SELECT part._id FROM part WHERE part.mid = mms._id LIMIT 1) WHERE (thread_id = 4) ORDER BY date_received DESC)
03-06 13:24:25.759  1525  6104 W MmsSmsDatabase: Executing query: SELECT _id, unique_row_id, body, type, thread_id, address, address_device_id, subject, date_sent, date_received, m_type, msg_box, status, part_count, ct_l, tr_id, m_size, exp, st, delivery_receipt_count, read_receipt_count, mismatched_identities, network_failures, subscription_id, expires_in, expire_started, notified, transport_type, attachment_id, unique_id, mid, data_size, file_name, _data, thumbnail, ct, cl, digest, fast_preflight_id, voice_note, cd, name, pending_push FROM (SELECT DISTINCT date_sent AS date_sent, date AS date_received, _id, 'SMS::' || _id || '::' || date_sent AS unique_row_id, NULL AS attachment_id, body, read, thread_id, type, address, address_device_id, subject, NULL AS m_type, NULL AS msg_box, status, NULL AS part_count, NULL AS ct_l, NULL AS tr_id, NULL AS m_size, NULL AS exp, NULL AS st, delivery_receipt_count, read_receipt_count, mismatched_identities, subscription_id, expires_in, expire_started, notified, NULL AS network_failures, 'sms' AS transport_type, NULL AS unique_id, NULL AS mid, NULL AS data_size, NULL AS file_name, NULL AS _data, NULL AS thumbnail, NULL AS ct, NULL AS cl, NULL AS digest, NULL AS fast_preflight_id, NULL AS voice_note, NULL AS cd, NULL AS name, NULL AS pending_push FROM sms WHERE (thread_id = 4) UNION ALL SELECT DISTINCT date AS date_sent, date_received AS date_received, mms._id AS _id, 'MMS::' || mms._id || '::' || date AS unique_row_id, part._id AS attachment_id, body, read, thread_id, NULL AS type, address, address_device_id, NULL AS subject, m_type, msg_box, NULL AS status, part_count, ct_l, tr_id, m_size, exp, st, delivery_receipt_count, read_receipt_count, mismatched_identities, subscription_id, expires_in, expire_started, notified, network_failures, 'mms' AS transport_type, unique_id, mid, data_size, file_name, _data, thumbnail, ct, cl, digest, fast_preflight_id, voice_note, cd, name, pending_push FROM mms LEFT OUTER JOIN part ON part._id =  (SELECT part._id FROM part WHERE part.mid = mms._id LIMIT 1) WHERE (thread_id = 4) ORDER BY date_received DESC)
--------- beginning of system

Device info

Device: Galaxy S6
Android version: 7.0
Signal version: 4.16.9

Could you help me?

sqlcipher

Most helpful comment

Thanks everyone, if an issue is open then we know about it and are tracking it. No need to post unless you have material information to add about the problem, although you can always use the reaction emojis to express support or acknowledgement. Thanks!

All 33 comments

Could you please capture a full debug log right after Signal crashes and post it here?

Here we are: https://hastebin.com/edokeqebiy

Thanks!

(just crashed a few seconds before)

There is no crash in this log. I also don't understand your description, what is "see full conversation?"

Thanks @moxie for you answer. When I go backwards in one conversation, on top of it there's a button "see full conversation", in order to display older messages.

How many messages would you estimate are in the conversation? Nothing else has changed there, but it could be that sqlcipher can't handle the query for some reason.

Do you have more than one thread with more than 500 messages (the initial scroll limit) in it? If so, does this happen for all of them or just one?

There are 26000 messages in the conversation.

This is the only thread with more than 500 messages.

(it was working before the upgrade, as I used it last weekend)

Have you tried waiting a while after clicking "load more?" Is your experience that the app immediately becomes unresponsive?

The app becomes unresponsive after two minutes. Then, Android OS proposes to kill it, because "Signal doesn't respond".

So nothing happens, but remains responsive. Two minutes later you get an ANR. What if you tell Android to "wait?"

A few seconds later, I get another ANR. And so on.

I can confirm this behaviour for large conversations (I don't know the exact number of messages, but could be similar to 20k or 30k).
I have another conversation with > 500 messages (but less than the other one, probably something like 2k), where the "load more" is working.
I am also quite sure that before the db migration it was working for the large conversation, too.

Device: Motorola Moto X 2014 (XT1092)
Android 6.0

Bummer, if anyone has time to put together a test case, it'd be nice to have something we can show the sqlcipher people.

Maybe something could be done on Signal side? For example, "see full conversation" could load 500 older messages only (and not all of them)?

I have some conversations with more then 500 messages and all works well, BUT conversations are limited to max. 1k messages (in settings).

@neurolit and @minnmann can you estimate if you have "mostly" text messages or media messages (audio, pictures, videos,..) in those conversations? It is possible that not only the no. of messages is a problem.

I mostly have text messages (maybe 300 photos, no video).

I am experiencing a similar issue as @minnmann and @neurolit: before the upgrade "See Full Conversation" used to work for all my conversations; after the upgrade it only works for short ones and makes Signal unresponsive for long ones (with a mix of text and photos, no video). "All media" shows all the photos for the conversations that make Signal unresponsive upon choosing "See Full Conversation." Deleting a few messages loads a few from the past that are not currently shown, but choosing "See Full Conversation" still leads to the same unresponsiveness with no extra conversations shown.

Exactly same behaviour here, I can't load old messages with button SEE FULL CONVERSATION. It does nothing and same time after I get an ANR

Signal version: 4.16.9
Device: Xiaomi Mi5s 3GB RAM

Tgue conversation have +20K messages

I was having the same issue on my Samsung Galaxy S5 before migrating to a new phone. New phone will not restore from backups so I cannot confirm if it is present with more ram, but I can generate logs on the old phone if needed.
Conversation was approximately 25,000 messages.

I'm also seeing this issue.
Android version: 7.1.2
Signal version: 4.17.5

I'm having the exact same problem as @0mid ; "see full conversation" works for my shorter convos, but for my one or two large ones (+30,000 messages, several hundred images), Signal freezes, then ceases to respond, and Android asks to kill it.

@FeuRenard yeah pretty much same here man; my instance is Android 6.0.1 Marshmallow and Signal 4.17.5

If I can't get this to work on my Galaxy S5, I wonder if running Android in VirtualBox and installing Signal on it, then "restoring" it via an exported copy of the Galaxy S5's plaintext backups, would allow us to get "over the hump", given one allocates, say, 8GB RAM and sufficient CPU power to the VM (you have to create it as a 32-bit instance of FreeBSD in order to run the Android ISO).

^Assume this attempt was a failure, unless I update this thread.

Same problem here. I have just updated Signal to version 4.17.5 from a old version, I have received the message "migrating database" (or somethink like this) and now the button "See full conversation" doesn't work, it does nothing, and some time after Android asks for killing Signal process.

Device: Lenovo Vibeshot Z90
Android: 6.0.1
Signal: 4.17.5

Hi! moxie0 removed the "bug" label. Is it solved? I have the same problem yet. Is it working for someone else?

Works for me, even on a thread with a few thousand messages

@VTCop all bugs were closed so that the new formatting will be used (read: to get rid of all the feature requests and bugs no one hits anymore)

Still a bug in Signal 4.18.2 (Android 7.0). Seems memory related. If I have Signal running for some time and click "See full conversation" in a very long conversation Signal will freeze and Android will ask to kill the Signal process. If I try it again after a restart of Signal it works as expected.

Thanks everyone, if an issue is open then we know about it and are tracking it. No need to post unless you have material information to add about the problem, although you can always use the reaction emojis to express support or acknowledgement. Thanks!

Same problem. Has anyone tried to unsinstall updates? Does it work then?

Some tried (uninstall updates) but it didn't work because the version of the database is different.

Wow! Finally this bug is solved! I can now view my old messages.

Lots of thanks

works for me too in current version.

Glad to see this is fixed!

Was this page helpful?
0 / 5 - 0 ratings