oxen-io / session-desktop

Session Desktop - Onion routing based messenger
https://getsession.org
GNU General Public License v3.0
1.56k stars 196 forks source link

[BUG] Can't start AppImage in AlmaLinux 8 #2777

Open gwyn17 opened 1 year ago

gwyn17 commented 1 year ago

Code of conduct

Self-training on how to write a bug report

Is there an existing issue for this?

Current Behavior

./session-desktop-linux-x86_64-1.10.8.AppImage Set Windows Application User Model ID (AUMID) { appUserModelId: 'com.loki-project.messenger-desktop' } NODE_ENV production NODE_APP_INSTANCE undefined NODE_CONFIG_DIR /home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/config NODE_CONFIG {} userData: /home/fil/.config/Session config/get: Successfully read user config file config/get: Did not find ephemeral config file, cache is now empty object making app single instance

(session-desktop-bin:2852605): Gtk-WARNING **: 13:43:23.104: Theme parsing error: gtk.css:490:34: 'font-feature-settings' is not a valid property name

(session-desktop-bin:2852605): Gtk-WARNING **: 13:43:23.112: Theme parsing error: gtk.css:1306:81: 'font-feature-settings' is not a valid property name

(session-desktop-bin:2852605): Gtk-WARNING **: 13:43:23.114: Theme parsing error: gtk.css:1469:82: 'font-feature-settings' is not a valid property name {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":30,"msg":"app ready","time":"2023-06-03T17:43:23.632Z","v":0} {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":30,"msg":"starting version 1.10.8","time":"2023-06-03T17:43:23.633Z","v":0} initializeSql sqlnode Made sure db folder exists at: /home/fil/.config/Session/sql {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":30,"msg":"migrateDatabase: Migration without cipher change failed {\"code\":\"ERR_DLOPEN_FAILED\"}","time":"2023-06-03T17:43:23.678Z","v":0} {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":30,"msg":"migrateDatabase: migrateSchemaVersion failed {\"code\":\"ERR_DLOPEN_FAILED\"}","time":"2023-06-03T17:43:23.680Z","v":0} {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":50,"msg":"error {}","time":"2023-06-03T17:43:23.681Z","v":0} {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":30,"msg":"Database startup error: Error: db is not set\n at Object.initializeSql ([REDACTED]/ts/node/sql.js:93:19)\n at showMainWindow ([REDACTED]/ts/mains/main_node.js:608:25)\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\n at async App. ([REDACTED]/ts/mains/main_node.js:582:9)","time":"2023-06-03T17:43:23.682Z","v":0} Gtk-Message: 13:43:23.754: GtkDialog mapped without a transient parent. This is discouraged. [2852658:0603/134323.768873:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process. Unhandled Promise Rejection: Error: neither globalInstance nor initialized is initialized. at assertGlobalInstanceOrInstance (/home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/ts/node/sql.js:53:15) at getById (/home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/ts/node/sql.js:239:17) at Object.getItemById (/home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/ts/node/sql.js:208:12) at getSpellCheckSetting (/home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/ts/mains/main_node.js:76:32) at showMainWindow (/home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/ts/mains/main_node.js:614:46) at async App. (/home/fil/tmp/.mount_sessioGOz3F0/resources/app.asar/ts/mains/main_node.js:582:9) {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":50,"msg":"Unhandled Promise Rejection: {}","time":"2023-06-03T17:43:48.518Z","v":0} Gtk-Message: 13:43:48.580: GtkDialog mapped without a transient parent. This is discouraged. {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":50,"msg":"(node:2852605) UnhandledPromiseRejectionWarning: Error: neither globalInstance nor initialized is initialized.\n at assertGlobalInstanceOrInstance ([REDACTED]/ts/node/sql.js:53:15)\n at getById ([REDACTED]/ts/node/sql.js:239:17)\n at Object.getItemById ([REDACTED]/ts/node/sql.js:208:12)\n at getSpellCheckSetting ([REDACTED]/ts/mains/main_node.js:76:32)\n at showMainWindow ([REDACTED]/ts/mains/main_node.js:614:46)\n at async App. ([REDACTED]/ts/mains/main_node.js:582:9)\n(Use session-desktop-bin --trace-warnings ... to show where the warning was created)","time":"2023-06-03T17:43:48.582Z","v":0} {"name":"log","hostname":"scott.localdomain","pid":2852605,"level":50,"msg":"(node:2852605) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see [REDACTED] (rejection id: 2)","time":"2023-06-03T17:43:48.582Z","v":0}

Expected Behavior

I expected to launch the app and use session on my AlmaLinux computer

Steps To Reproduce

  1. Download session-desktop-linux-x86_64-1.10.8.AppImage
  2. md5sum session-desktop-linux-x86_64-1.10.8.AppImage 4a4d48f03f9c3ee8f9c713325148dabf session-desktop-linux-x86_64-1.10.8.AppImage
  3. chmod +x session-desktop-linux-x86_64-1.10.8.AppImage
  4. ./session-desktop-linux-x86_64-1.10.8.AppImage
  5. cat /etc/redhat-release AlmaLinux release 8.6 (Sky Tiger)

Desktop Version

1.10.8

Anything else?

No response

Bilb commented 1 year ago

this looks like an issue with the native binary of better-sqlite3:

scott.localdomain","pid":2852605,"level":30,"msg":"migrateDatabase: Migration without cipher change failed {"code":"ERR_DLOPEN_FAILED

Idk how red hat is different from debian, but the AppImage built is on a debian based system and was never tested on redhat or redhat based system We would probably need to compile a redhat specific version.

leirbag28 commented 11 months ago

I am having an Error with the Appimage on Ubuntu similar

OS: Ubuntu 18.04.6 LTS DE: MATE Arch: 64 bit Session version (and previous version also) 1.11.5

I dont remember what I did to cause this but I think upon starting it first asked me a question perhaps to replace something and I probably said YES...but I could be wayy off that this is how it happened, but I know it happened for sure when I replaced the old one (I suspect it creates a seaparate config on my system other than withing itself as an Appimage? and it tried to overwrite that old one with this newer version)

when I drop the AppImage into the MATE Terminal to start it that way: (look way at the bottom for the other error before reading this as to possibly not waste time)

chromium@bionic-pc:~$ '/home/chromium/Downloads/12-11-23/session-desktop-linux-x86_64-1.11.5.AppImage' Set Windows Application User Model ID (AUMID) { appUserModelId: 'com.loki-project.messenger-desktop' } NODE_ENV production NODE_APP_INSTANCE undefined NODE_CONFIG_DIR /tmp/.mount_sessio8WvC7K/resources/app.asar/config NODE_CONFIG {} userData: /home/chromium/.config/Session config/get: Successfully read user config file config/get: Did not find ephemeral config file, cache is now empty object making app single instance [10178:1211/100814.718896:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.portal.Settings.Read: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.UnknownMethod: No such interface 'org.freedesktop.portal.Settings' on object at path /org/freedesktop/portal/desktop INTEL-MESA: warning: Haswell Vulkan support is incomplete {"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"app ready","time":"2023-12-11T15:08:15.130Z","v":0} {"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"starting version 1.11.5","time":"2023-12-11T15:08:15.131Z","v":0} {"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"locale is en-US","time":"2023-12-11T15:08:15.137Z","v":0} initializeSql sqlnode Made sure db folder exists at: /home/chromium/.config/Session/sql {"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"migrateDatabase: Migration without cipher change failed /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by [REDACTED].unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node)","time":"2023-12-11T15:08:15.152Z","v":0} {"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"migrateDatabase: migrateSchemaVersion failed {\"code\":\"ERR_DLOPEN_FAILED\"}","time":"2023-12-11T15:08:15.156Z","v":0} {"name":"log","hostname":"bionic-pc","pid":10178,"level":50,"msg":"error {}","time":"2023-12-11T15:08:15.156Z","v":0} {"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"Database startup error: Error: db is not set\n at Object.initializeSql ([REDACTED]/ts/node/sql.js:84:19)\n at showMainWindow ([REDACTED]/ts/mains/main_node.js:612:25)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async App. ([REDACTED]/ts/mains/main_node.js:586:9)","time":"2023-12-11T15:08:15.157Z","v":0} Gtk-Message: 10:08:15.527: GtkDialog mapped without a transient parent. This is discouraged. Unhandled Promise Rejection: Error: neither globalInstance nor initialized is initialized. at assertGlobalInstanceOrInstance (/tmp/.mount_sessio8WvC7K/resources/app.asar/ts/node/sqlInstance.js:18:15) at getById (/tmp/.mount_sessio8WvC7K/resources/app.asar/ts/node/sql.js:220:66) at Object.getItemById (/tmp/.mount_sessio8WvC7K/resources/app.asar/ts/node/sql.js:190:12) at getSpellCheckSetting (/tmp/.mount_sessio8WvC7K/resources/app.asar/ts/mains/main_node.js:76:32) at showMainWindow (/tmp/.mount_sessio8WvC7K/resources/app.asar/ts/mains/main_node.js:618:46) at async App. (/tmp/.mount_sessio8WvC7K/resources/app.asar/ts/mains/main_node.js:586:9) {"name":"log","hostname":"bionic-pc","pid":10178,"level":50,"msg":"Unhandled Promise Rejection: {}","time":"2023-12-11T15:08:23.796Z","v":0} Gtk-Message: 10:08:23.823: GtkDialog mapped without a transient parent. This is discouraged. chromium@bionic-pc:~$ C

At the same time this pops up in a separate window whether I start the Appimnage by double clicking or dropping it into the Terminal (which I did on purpose to show you what happenes behind the scenes if it helps):

Session Error-2023-12-11_10-16

Bilb commented 10 months ago

Hey, It looks like both of your issues (ubuntu and almalinux) are linked to glibc being too old. You can see the

{"name":"log","hostname":"bionic-pc","pid":10178,"level":30,"msg":"migrateDatabase: Migration without cipher change failed /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by [REDACTED].unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node)","time":"2023-12-11T15:08:15.152Z","v":0}

Glibc is central to linux systems and to upgrade it on ubuntu 18.04 is going to be a real pain (it might even break your whole system). The max supported on Ubuntu 18.04 AND AlmaLinux 8 looks to be 2.28 I'd advise to

As written on our release page, Session requires a linux distribution with a glibc of at least 2.29, so at least Ubuntu 20.04. https://github.com/oxen-io/session-desktop/releases/tag/v1.11.5


Also, I am not too sure how broken that config folder is going to be, but we can move it somewhere else to see if the app itself it crashing or if what's inside that config folder is making it crash. You can move your whole Session config folder with (stop Session first)

mv ~/.config/Session ~/.config/Session.back

You can then restart Session and try to create a new account to see if it still crashes. (Just make sure you don't run the mv command above twice!) If it still crashes with a fresh account, it's probably an incompatibility with your system (the upgrade of Ubuntu/AlmaLinux might fix it).

Thanks

gwyn17 commented 9 months ago

What then the point of AppImage if it is so tightly tied to the a distros libraries?