Closed KlausC closed 1 month ago
I installed 7.22.2, copied over the folder from an older version, and got Signal-desktop to start again. I lost all data since i made that copy, but at least it starts again.
Okay - and you can open multiple times without seeing the original issue?
and you can open multiple times without seeing the original issue?
Oops. No, I can not.
@lizthegrey I did some investigation into your glibc library version mismatch, and I think it's a red herring.
On 24.04 LTS, the command actually works and looks right (because the snap is built on core24
):
❯ lxc launch ubuntu:noble tmpbuntu; lxc exec tmpbuntu bash; lxc delete -f tmpbuntu
Creating tmpbuntu
Starting tmpbuntu
root@tmpbuntu:~# snap install signal-desktop
2024-08-31T16:36:34Z INFO Waiting for automatic snapd restart...
signal-desktop 7.22.2 from Snapcrafters✪ installed
root@tmpbuntu:~# ldd /snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node
linux-vdso.so.1 (0x00007f3700f7c000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3700400000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3700e88000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3700e5b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3700000000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3700f7e000)
root@tmpbuntu:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04 LTS"
root@tmpbuntu:~#
I do observe the same results as you on 22.04:
❯ lxc launch ubuntu:jammy tmpbuntu; lxc exec tmpbuntu bash; lxc delete -f tmpbuntu
Creating tmpbuntu
Starting tmpbuntu
root@tmpbuntu:~# snap install signal-desktop
signal-desktop 7.22.2 from Snapcrafters✪ installed
root@tmpbuntu:~# ldd /snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node
/snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node)
/snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node)
linux-vdso.so.1 (0x00007f284dc4d000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f284d200000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f284d519000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f284dc22000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f284ce00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f284dc4f000)
root@tmpbuntu:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.4 LTS"
However, this is a little misleading, because we're running ldd
outside of the context of the snap -- if you enter a shell representative of where the snap is run, you'll see the mismatch no longer exists:
root@tmpbuntu:~# snap run --shell signal-desktop.signal-desktop
root@tmpbuntu:~# ldd /snap/signal-desktop/696/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node
linux-vdso.so.1 (0x00007f813854e000)
/snap/signal-desktop/696/gnome-platform/$LIB/bindtextdomain.so => /snap/signal-desktop/696/gnome-platform/lib/x86_64-linux-gnu/bindtextdomain.so (0x00007f8138543000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8137a00000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8138455000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8138426000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8137600000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8138550000)
Hopefully this clears things up a bit - although sadly we're no closer to solving the underlying issue, which I still believe to be an upstream bug.
Are you in contact with upstream? Are they aware of this issue? It's probably better if you, as a maintainer, contacted them, not me as a random user. There is also this issue: https://github.com/signalapp/Signal-Desktop/issues/7005 Maybe related?
I have the same issue on Fedora 40. Signal is simply unusable.
Yes, I've raised the issue a few times, contacted them out of band and tried to engage through other Github issues, but so far haven't really got any traction.
I have same Issue on Rocky Linux 9.4 with latest updates
Downgrading to 7.15.0 works as a workaround:
snap remove signal-desktop && snap install signal-desktop --revision=671
@martinl
Downgrading to 7.15.0 works as a workaround
Does this retain the chat history, done in the initial launch, of a broken version?
I had different issue now with 7.15.0 when I had it running for a while - QR code to add new device popped up randomly after about 30 mins and chat history was gone on desktop each time I added desktop device back via mobile app.
I'm still having the same issue with the new version. Testing requires linking a device and opening/closing the application to ensure it opens subsequent times without losing the data.
...in the meantime, Signal is now available as a flatpak and .deb for aarch64/arm64 - https://signalflatpak.github.io/signal/ Yay, it works!
flatpak version works a bit better but I still managed to lose settings after a few restarts
Martin
On Tue, 1. Oct 2024 at 04:33, Sakya @.***> wrote:
any fix ? as of today 7.15 can no longer be used
— Reply to this email directly, view it on GitHub https://github.com/snapcrafters/signal-desktop/issues/300#issuecomment-2384552898, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABEJTRXDPUX3ZSAN3RBDEDZZHUWVAVCNFSM6AAAAABLYD5YUGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBUGU2TEOBZHA . You are receiving this because you were mentioned.Message ID: @.***>
Unfortunately, 7.15.0
is now expired and cannot be launched anymore.
Just upgraded to 7.26.0
and the problem still exist: application is unusable, it crashes at start (same errors as first posts).
2024-10-01 10:49:05.479: ERROR CORE sqlcipher_page_cipher: hmac check failed for pgno=1
2024-10-01 10:49:05.479: ERROR CORE sqlite3Codec: error decrypting page 1 data: 1
2024-10-01 10:49:05.479: ERROR CORE sqlcipher_codec_ctx_set_error 1
{"level":40,"time":"2024-10-01T08:49:05.480Z","msg":"MainSQL: Database log code=26: file is not a database in \"PRAGMA journal_mode = WAL\""}
{"level":30,"time":"2024-10-01T08:49:05.480Z","msg":"MainSQL: migrateDatabase: Migration without cipher change failed"}
2024-10-01 10:49:05.515: ERROR CORE sqlcipher_page_cipher: hmac check failed for pgno=1
2024-10-01 10:49:05.515: ERROR CORE sqlite3Codec: error decrypting page 1 data: 1
2024-10-01 10:49:05.515: ERROR CORE sqlcipher_codec_ctx_set_error 1
{"level":40,"time":"2024-10-01T08:49:05.516Z","msg":"MainSQL: Database log code=26: statement aborts at 2: [PRAGMA user_version] file is not a database"}
{"level":50,"time":"2024-10-01T08:49:05.516Z","msg":"MainSQL: Database startup error: SqliteError: file is not a database\n at Database.pragma ([REDACTED]/node_modules/@signalapp/better-sqlite3/lib/methods/pragma.js:11:31)\n at getUserVersion ([REDACTED]/ts/sql/util.js:132:13)\n at migrateSchemaVersion ([REDACTED]/ts/sql/Server.js:406:54)\n at openAndMigrateDatabase ([REDACTED]/ts/sql/Server.js:438:5)\n at openAndSetUpSQLCipher ([REDACTED]/ts/sql/Server.js:460:14)\n at initialize ([REDACTED]/ts/sql/Server.js:507:10)\n at MessagePort.<anonymous> ([REDACTED]/ts/sql/mainWorker.js:69:41)\n at [nodejs.internal.kHybridDispatch] (node:internal/event_target:820:20)\n at MessagePort.<anonymous> (node:internal/per_context/messageport:23:28)"}
{"level":50,"time":"2024-10-01T08:49:05.516Z","msg":"Failed to get zoom factor {\"name\":\"SqliteError\"}"}
{"level":30,"time":"2024-10-01T08:49:05.818Z","msg":"got fast theme-setting value system"}
{"level":50,"time":"2024-10-01T08:49:06.278Z","msg":"sql.initialize was unsuccessful; returning early"}
{"level":30,"time":"2024-10-01T08:49:06.279Z","msg":"close event {\"readyForShutdown\":false,\"shouldQuit\":false}"}
{"level":30,"time":"2024-10-01T08:49:06.279Z","msg":"maybeRequestCloseConfirmation: Checking to see if close confirmation is needed"}
{"level":50,"time":"2024-10-01T08:49:47.614Z","msg":"onDatabaseError: Quitting application"}
I have a couple of things to try if anyone is willing, to see if we can get a workaround... first up...
Can you try resetting, and starting Signal from the command-line using signal-desktop --password-store="basic"
. Then close it, and restart with the same command and see if the issue persists?
(You may need to completely remove signal with sudo snap remove signal-desktop --purge
and reinstall before trying this to make sure)
Another option to try and rule out any confinement issues is to run the binary without confinement. You can do that by opening a terminal and running:
/snap/signal-desktop/current/opt/Signal/signal-desktop --no-sandbox
I confirm that works fine launching with signal-desktop --password-store="basic"
once removed and installed in latest version.
Closing and launching again signal-desktop works as long as I'm launching with --password-store="basic"
.
As soon as I'm launching without this option, same error occurs.
Okay, I've got two PRs up that could solve this issue.
The first to test, and my preferred route, is: #322 - there are testing instructions in the PR.
The second just implements using the --password-store=basic
parameter be default, which is objectively less secure, but will work it seems (that's #321).
Fixed in #321, just released into latest/stable
I can confirm the patch works.
People need to uninstall and reinstall signal-desktop again (following error occurs at startup) :
Then, re-opening the application several times works as expected: no more errors.
Thank you very much for the fix @jnsgruk :pray:
This has fixed something!
For users with a broken database: If you have an old backup, from before database encryption, of the snap/signal-desktop snap folder, you can copy over the .config .local .pki files into the current folder, and replace the current folders. Then start signal-desktop using the latest version and it will use the correct encryption this time.
This way you don't have to re-link and you get to keep at least some of your chat history.
Thank you for your hard work, @jnsgruk
What happened?
Application starts and an error window pops upDatabase startup error:
When I follow the instructions and delete all data, I can re-connect the device to the account and send a message. But after I close the app and try to start again, the same error window re-appears.
What should have happened?
signal-desktop should start without forcing me to delete data and re-connect.
Output of
snap info $snap_name
Output of
snap connections $snap_name
Output of
snap version
Relevant log output
Teminal output of app