signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.64k stars 2.67k forks source link

after upgrade to signal-desktop 1.15.0, it crashes with `GLIBCXX_3.4.21' not found #2604

Closed mihai-chezan closed 3 months ago

mihai-chezan commented 6 years ago

Bug description

After upgrading signal-desktop from 1.14.4 to 1.15.0, it stopped working. Running from console gives this error message:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.2bqTYF)

Steps to reproduce

  1. run signal-desktop from console

Actual result:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.2bqTYF)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
    at Object.Module._extensions..node (module.js:671:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
    at Function.Module._load (module.js:496:3)
    at Module.require (module.js:586:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)

Expected result:

It should start without errors. It worked before the upgrade.

Platform info

Signal version: 1.15.0

Operating System: Linux Mint Mate 17.3

wsamoht commented 5 years ago

@alexburner i think this is the easiest work-around for now: #2604 (comment)

Agreed! It worked for me. Just note you have to update /usr/share/applications/signal-desktop.desktop every time Signal is updated.

melmasri commented 5 years ago

@alexburner i think this is the easiest work-around for now: #2604 (comment)

Agreed! It worked for me. Just note you have to update /usr/share/applications/signal-desktop.desktop every time Signal is updated.

You can use hold to keep single from updating every time, as sudo apt-mark hold <package-name>

alexburner commented 5 years ago

Excellent, thank you @scarf ! We'll see which I get to first: the patch or finally updating ubuntu

Francewhoa commented 5 years ago

Confirming this challenge with latest stable Signal 1.18.1, Debian 8 Jessie at 64-bit, GNOME 3.14.1, Kernel 4.9.0-0

Unhandled Error: Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/.org.chromium.Chromium.EbKyia) at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20) at Object.Module._extensions..node (internal/modules/cjs/loader.js:740:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:559:12) at Function.Module._load (internal/modules/cjs/loader.js:551:3) at Module.require (internal/modules/cjs/loader.js:658:17) at require (internal/modules/cjs/helpers.js:20:18) at Object. (/opt/Signal Beta/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15) at Object. (/opt/Signal Beta/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)

Francewhoa commented 5 years ago

Confirming this challenge with latest beta Signal 1.19.0-beta.3, Debian 8 Jessie at 64-bit, GNOME 3.14.1, Kernel 4.9.0-0

Unhandled Error: Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/.org.chromium.Chromium.EbKyia) at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20) at Object.Module._extensions..node (internal/modules/cjs/loader.js:740:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:559:12) at Function.Module._load (internal/modules/cjs/loader.js:551:3) at Module.require (internal/modules/cjs/loader.js:658:17) at require (internal/modules/cjs/helpers.js:20:18) at Object. (/opt/Signal Beta/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15) at Object. (/opt/Signal Beta/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)

Francewhoa commented 5 years ago

1.14.4 Worked

This is to confirm that the temporary workaround with reverting to “signal-desktop_1.14.4_amd64.deb” worked. Thanks @mykhi for this package above.

The downside with Signal Desktop 1.14.4 is that you are not allow to send SMS. If you try this error message is display:

This version of Signal Desktop has expired. Please upgrade to the latest version to continue messaging.

this_version_of_signal_desktop_has_expired---2018-12-02---francewhoa

Lock Version 1.14.4

For those using Debian, Linux Mint, Ubuntu. And not familiar with the lock version. Until this challenge is resolved, you might be interested to lock Signal to version 1.14.4. Otherwise during your next system update there is a risk that your Signal version 1.14.4 will be automatically replace by the latest version. In turn, the challenge could be back. If you're not familiar with how to lock a package version, find this how-to at: • https://www.linuxuprising.com/2018/10/how-to-keep-package-from-updating-in.html • Archived at http://archive.fo/aHGKd

EvilRenegade commented 5 years ago

@Francewhoa does that actually work for you? 'cause my 1.14.4 still shows me the

This version of Signal Desktop has expired. Please upgrade to the latest version to continue messaging.

banner.

Like, can you not just start the client, but actually exchange messages with it? And I can see that it doesn't download all messages. It does seem to show a message I sent from the phone while I had the desktop client open, but it does not show the message I was responding to.

Edit: To clarify: You said you couldn't send SMS with it. Can you send Signal-native messages with it?

Francewhoa commented 5 years ago

@EvilRenegade :)

does that actually work for you?

Yes and no. No I can not send SMS with 1.14.4 :( I added this screenshot to my comment above. And yes I can start the client :)


>Edit: To clarify: You said you couldn't send SMS with it. Can you send Signal-native messages with it? I don't know. I'm not familiar with Signal-native messages. What I tested is into this screenshot above.
I'm considering using https://ring.cx instead of Signal. Ring have a much better support for Linux. For example Ring has _one dedicated_ repository per distro and per distro version. In comparison Signal has only _one_ repository for _all_ distros and _all_ distro versions. Which seems very risky to create challenge and confusion. Ring package can easily be downloaded either automatically or manually. Including _all_ previous versions. Compare to Ring where only the last version can be manually downloaded. Both Signal and Ring are open source, cross-platform, encrypted, with strong privacy commitment. In November 2016 Ring became part of the GNU Project.
sebma commented 5 years ago

Hi, I also downgraded Signal to 1.14.4, but I cannot send any messages with it :

This version of Signal Desktop has expired. Please upgrade to the latest version to continue messaging.

Is there another Signal version (>1.14) that does not have this crash bug that is able to send messages ?

501st-alpha1 commented 5 years ago

@sebma No, there is not. You can either compile from source yourself (https://github.com/signalapp/Signal-Desktop/issues/2604#issuecomment-438509388) or download a newer libstdc for use with Signal Desktop (https://github.com/signalapp/Signal-Desktop/issues/2604#issuecomment-431624475). The latter is probably easier, and so is the solution I recommend.

sebma commented 5 years ago

@501st-alpha1 I just don't understand : I have installed a newer libstdc++6 on my Ubuntu Trusty taken from the Toolchain test builds PPA :

$ apt-cache policy libstdc++6
libstdc++6:
  Installed: 9.1.0-2ubuntu2~14.04.2
  Candidate: 9.1.0-2ubuntu2~14.04.2
  Version table:
 *** 9.1.0-2ubuntu2~14.04.2 0
        500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status
     4.8.4-2ubuntu1~14.04.4 0
        500 http://fr.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
     4.8.2-19ubuntu1 0
        500 http://fr.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

but I still get these errors :

$ signal-desktop
signal-desktop: /lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by signal-desktop)
/opt/Signal/signal-desktop: /lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /opt/Signal/signal-desktop)
Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /opt/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
userData: /home/sebastien/.config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
making app single instance
Fontconfig warning: "/etc/fonts/fonts.conf", line 86: unknown element "blank"
{"name":"log","hostname":"seb-C70D-B-311","pid":18361,"level":30,"msg":"app ready","time":"2019-06-01T06:08:04.182Z","v":0}
{"name":"log","hostname":"seb-C70D-B-311","pid":18361,"level":30,"msg":"starting version 1.25.1","time":"2019-06-01T06:08:04.183Z","v":0}
/opt/Signal/signal-desktop: relocation error: /tmp/.org.chromium.Chromium.KBqn0R: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

Can you help me ?

501st-alpha1 commented 5 years ago

@sebma Sorry, I don't know enough to help with that. It looks like its a slightly different error though, so if no one else responds here, it might be worth opening a new issue.

scytho commented 4 years ago

To name but a few: Ubuntu 14.4, Kubuntu 14.4, Lubuntu 14.4, Mint 17, LMDE2 debian 8 Jessie (Long term support until June 2020 !!!!!!) Many millions of installations: they all are forced into an Upgrade which does not work.

I had convinced many people to use signal ... "unfortunately", I must say, because now they all complain to me and move back (and even worse: they will not return) to other messengers.

This all would not be a problem, if there was a package maintained by the proper debian package manager. However, as I discovered: signal doesn't want proper package managers, because:

"Distributing it through another channel would only complicate things without providing any clear benefit." and "Letting others maintain a package for your app (like Signal-Desktop) is bad because you are no longer in control which version is shipped, and users blame and annoy you for bugs you fixed ages ago." See: signalapp/libsignal-service-java#50

Great idea, because the result is distributing a package which doesn't work and - even better - it is not allowed to use the working one anymore. It seems, that a properly working version would not be "any clear benefit".

Big detriment to signal (and to my reputation through recommeding signal).

No clear benefit … bullshit. This is exactly what I experienced time and again over the past like 10 or 15 years. Devs doing stuff you just don’t understand, and then they won’t change their mind, no matter what reasonable arguments against their decisions you come up with. It’s extremely frustrating. You find a cool piece of software, perfectly suiting your needs, and then the devs ruin it. Gnome, Firefox, Signal. They just don’t have that certain piece of sense of responsibility they inevitably acquire with publishing software for others. It always ends up in some dogmatic, sect-like mess of ideology about software development or gui design.

I just installed Signal on someone’s phone and tried to install Signal Desktop on their machine. Won’t start up. The machine is running Mint 17, which is obsolete, I know, but that’s not the point. Signal could be in repos and in F-Droid for a long time now. But one person doesn’t want to, so we don’t get to have that.

Yeah, it’s free, we’re not paying customers. But we’re the users. Who else would you write software for?

scottnonnenberg-signal commented 4 years ago

@scytho I understand that you are very frustrated, but it's not about reasonable arguments. Supporting very old platforms is extremely costly. We can't justify that effort. You'll note that the Android and iOS apps periodically drop support for the oldest Android phones as well.

Moreover, when platforms like Mint 17 reach their end of life (a little over one year ago in Mint 17's case) it is a very bad idea to continue using them, because they no longer get security updates.

b00nish commented 4 years ago

@scottnonnenberg-signal It already didn't work in a couple of distributions (e.g. Ubuntu 14.04) when they still were well in their lifecycle. Debian 8 had still two years of support left when it stopped working. So it's not like those were ages old operating systems back then. But as I said back in 2018: I'm glad that happened before I persuaded my peers to switch to Signal.

scytho commented 4 years ago

@scottnonnenberg-signal: I didn’t expect anything else. That’s exactly my point. I have stated that Mint 17 is crap old, and we are going to replace it. But that’s not the thing in question here. It was about Signal not using distro repos. Where does that lead to? Every piece of software having its own update routine. Wait, where do I know that from … Ah! Yes! Windows! Not my favorite OS, in case that didn’t shine through yet.

Yes, it is about reasonable arguments. Be it the hypermonsterbar in Firefox, be it stupid design decisions in Gnome 3, be it this uber annoying device verification when signing in here at GH (here or here), it’s always the same story:

  1. Someone starts a software project.
  2. Users find the SW is really cool, because it’s just a perfect match.
  3. Devs go bananas but think they’re going even more pro.
  4. Users say »Can we please have this or that feature back? I really was using it a lot. I want it. I need it!«
  5. Devs: »No. It’s useless/irritating/counterintuitive/younameit.«
  6. »No, it was great, look: A, B, C, D, E and many other reasons!«
  7. »No it isn’t.« *wontfix*/*closed*/…

So, no, you don’t seem to really understand just how frustrating this is. This is pure unreasonableness (do you really say that in English?). Most users are no developers and thus unable to change things by themselves. The users depend on the devs. The devs develop for the users, not just for themselves (I guess). It can’t be the objective that everyone builds their own forks, anyway.

End of story: The devs act like Apple. They know better what’s good for all of us and basically tell us to shut the fuck up. They would never be able to do this, if they actually had to earn a living with the software, i.e. by selling it. Unless they were Apple or Microsoft or the like. Which in turn is one reason why I don’t like those big players.

I-I-IT commented 3 months ago

2024 and I just installed the app following instructions on the Signal website, and the app won't open on Linux Mint 22

jamiebuilds-signal commented 3 months ago

I'm going to close this issue out in favor of asking people to forward issues like this to signal@support.org. Issues like this tend to have multiple root causes and it's difficult to offer support for many people in a single thread like this spanning several years. When sending a report like this please include a debuglog and/or crash report: https://support.signal.org/hc/en-us/articles/360007318591-Debug-Logs-and-Crash-Reports