nuclear icon indicating copy to clipboard operation
nuclear copied to clipboard

crash at startup on ubuntu 20.04 snap version

Open gw3l opened this issue 1 year ago • 9 comments

Platform: ubuntu 20.04 snap version

Nuclear version: 0.6.31

Description of the issue: The application doesn't launch anymore, when I try to run in a shell I get the following "crashdump":

snap run nuclear
    main › (node:10287) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `nuclear --trace-deprecation ...` to show where the warning was created)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /tmp/.org.chromium.Chromium.v4LrS4)
    at process.func [as dlopen] (electron/js2c/asar_bundle.js:5:1846)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1138:18)
    at Object.func [as .node] (electron/js2c/asar_bundle.js:5:2073)
    at Module.load (internal/modules/cjs/loader.js:935:32)
    at Module._load (internal/modules/cjs/loader.js:776:14)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
    at Module.require (internal/modules/cjs/loader.js:959:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.@nuclear/scanner (/snap/nuclear/67/resources/app.asar/dist/main.js:4:9737553)
    at __webpack_require__ (/snap/nuclear/67/resources/app.asar/dist/main.js:1939:2675670)
    at Object../src/controllers/local-library.ts (/snap/nuclear/67/resources/app.asar/dist/main.js:4:9638351)
    at __webpack_require__ (/snap/nuclear/67/resources/app.asar/dist/main.js:1939:2675670)
    at Object../src/ioc.ts (/snap/nuclear/67/resources/app.asar/dist/main.js:4:9652658)
    at __webpack_require__ (/snap/nuclear/67/resources/app.asar/dist/main.js:1939:2675670)
    at Object../src/main.ts (/snap/nuclear/67/resources/app.asar/dist/main.js:4:9654748)
    at __webpack_require__ (/snap/nuclear/67/resources/app.asar/dist/main.js:1939:2675670)
    at /snap/nuclear/67/resources/app.asar/dist/main.js:1939:2677642
    at Object.<anonymous> (/snap/nuclear/67/resources/app.asar/dist/main.js:1939:2677702)
    at Module._compile (internal/modules/cjs/loader.js:1078:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)
    at Module.load (internal/modules/cjs/loader.js:935:32)
    at Module._load (internal/modules/cjs/loader.js:776:14)
libGL error: MESA-LOADER: failed to open iris (search paths /snap/nuclear/67/gnome-platform/usr/lib/x86_64-linux-gnu/dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris (search paths /snap/nuclear/67/gnome-platform/usr/lib/x86_64-linux-gnu/dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast (search paths /snap/nuclear/67/gnome-platform/usr/lib/x86_64-linux-gnu/dri)
libGL error: failed to load driver: swrast 

Is this because of a wrong libc version in the electron/chromium executable ? Thanks a lot !

gw3l avatar Jul 26 '24 06:07 gw3l

Thanks for reporting this, somebody on Discord reported the same error using the .deb package and Appimage on Debian. Not sure yet what's causing this. I'll try to change ffmpeg packaging in the next release to see if it changes anything.

nukeop avatar Jul 26 '24 07:07 nukeop

I am also having the same issue. I tried installing it using a tar file, but the issue persists.

Is it entirely related to GLIBC ?? I checked that the version I have in my system is 2.31

ldd (Ubuntu GLIBC 2.31-0ubuntu9.16) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

soumyadipbarman avatar Jul 26 '24 11:07 soumyadipbarman

I have the same issue on Ubuntu 24.04. I discovered nuclear and I wanted to try it, but it won't launch unfortunately.

I'm using version 0.6.39 of the snap package.

nuclear
    main › (node:63739) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `nuclear --trace-deprecation ...` to show where the warning was created)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /tmp/.org.chromium.Chromium.TLjWxS)
    at process.func [as dlopen] (electron/js2c/asar_bundle.js:5:1846)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1138:18)
    at Object.func [as .node] (electron/js2c/asar_bundle.js:5:2073)
    at Module.load (internal/modules/cjs/loader.js:935:32)
    at Module._load (internal/modules/cjs/loader.js:776:14)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
    at Module.require (internal/modules/cjs/loader.js:959:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.@nuclear/scanner (/snap/nuclear/75/resources/app.asar/dist/main.js:4:9741864)
    at __webpack_require__ (/snap/nuclear/75/resources/app.asar/dist/main.js:1939:2675911)
    at Object../src/controllers/local-library.ts (/snap/nuclear/75/resources/app.asar/dist/main.js:4:9642653)
    at __webpack_require__ (/snap/nuclear/75/resources/app.asar/dist/main.js:1939:2675911)
    at Object../src/ioc.ts (/snap/nuclear/75/resources/app.asar/dist/main.js:4:9656960)
    at __webpack_require__ (/snap/nuclear/75/resources/app.asar/dist/main.js:1939:2675911)
    at Object../src/main.ts (/snap/nuclear/75/resources/app.asar/dist/main.js:4:9659050)
    at __webpack_require__ (/snap/nuclear/75/resources/app.asar/dist/main.js:1939:2675911)
    at /snap/nuclear/75/resources/app.asar/dist/main.js:1939:2677883
    at Object.<anonymous> (/snap/nuclear/75/resources/app.asar/dist/main.js:1939:2677943)
    at Module._compile (internal/modules/cjs/loader.js:1078:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)
    at Module.load (internal/modules/cjs/loader.js:935:32)
    at Module._load (internal/modules/cjs/loader.js:776:14)

(nuclear:63739): Gtk-WARNING **: 09:43:45.160: Theme parsing error: gtk.css:1422:23: 'font-feature-settings' is not a valid property name

(nuclear:63739): Gtk-WARNING **: 09:43:45.169: Theme parsing error: gtk.css:3308:25: 'font-feature-settings' is not a valid property name

(nuclear:63739): Gtk-WARNING **: 09:43:45.171: Theme parsing error: gtk.css:3770:23: 'font-feature-settings' is not a valid property name

furgo16 avatar Oct 04 '24 07:10 furgo16

Are you able to find out what version of glibc you have installed?

nukeop avatar Oct 04 '24 07:10 nukeop

Thanks. Are all dependencies not supposed to be shipped in the snap package itself, so that the snap runs independently of the host system?

On my host system, I have glibc 2.39. I tried to see how the snap package declares its dependencies, but I could not find the snapcraft.yaml file in the repo.

ldd --version
ldd (Ubuntu GLIBC 2.39-0ubuntu8.3) 2.39
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

furgo16 avatar Oct 04 '24 08:10 furgo16

That is definitely how it should be, and it's pretty weird that it's not, I just want to find out how it relates to your local setup. A snap should be fully separated from the rest of the system.

nukeop avatar Oct 04 '24 08:10 nukeop

Thanks. My system is a plain Ubuntu 24.04 setup. I've tried the 0.6.39 AppImage and .deb package. Both work and do not crash on startup.

This would hint at a packaging issue with the snap package (outdated dependencies declared? old core20 base used with newer dependencies?), but without seeing the snapcraft.yaml file, it would be just a guess.

furgo16 avatar Oct 04 '24 08:10 furgo16

We use electron-builder which is supposed to handle snap building automatically, so there's no snapcraft.yml. Maybe it's a matter of updating some dependencies?

nukeop avatar Oct 04 '24 08:10 nukeop

Interesting, I wasn't aware of electron-builder.

It would seem the nuclear snap uses the core20 base snap, which includes glibc 2.31, yet it also ships a newer version of chromium that requires glibc 2.32. Hence the mismatch. If this theory would be correct, that would hint at an upstream bug in electron-builder.

The resolution of upstream issue #8548 could indirectly bring a fix when electron-builder starts using the core22 or core24 snaps, which ship higher versions of glibc.

In the meantime, are there any settings in electron-builder to downgrade chromium to a version that uses glibc 2.31?

furgo16 avatar Oct 04 '24 08:10 furgo16

Hopefully this will be gone if the newest release. Let me know if it reoccurrs.

nukeop avatar Mar 25 '25 01:03 nukeop

@nukeop , I just retested on my Ubuntu 24.04.2 LTS with latest Snap package version 0.6.44, same error:

> snap run nuclear
    main ›  (node:554171) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `nuclear --trace-deprecation ...` to show where the warning was created) 
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /tmp/.org.chromium.Chromium.f9k2z0)
    at process.func [as dlopen] (node:electron/js2c/node_init:2:2559)
    at Module._extensions..node (node:internal/modules/cjs/loader:1602:18)
    at Object.func [as .node] (node:electron/js2c/node_init:2:2786)
    at Module.load (node:internal/modules/cjs/loader:1295:32)
    at Module._load (node:internal/modules/cjs/loader:1111:12)
    at c._load (node:electron/js2c/node_init:2:16955)
    at Module.require (node:internal/modules/cjs/loader:1318:19)
    at require (node:internal/modules/helpers:179:18)
    at @nuclear/scanner (/snap/nuclear/80/resources/app.asar/dist/main.js:14:5960720)
    at __webpack_require__ (/snap/nuclear/80/resources/app.asar/dist/main.js:14:7911580)
    at ./src/controllers/local-library.ts (/snap/nuclear/80/resources/app.asar/dist/main.js:14:3809647)
    at __webpack_require__ (/snap/nuclear/80/resources/app.asar/dist/main.js:14:7911580)
    at ./src/ioc.ts (/snap/nuclear/80/resources/app.asar/dist/main.js:14:3823962)
    at __webpack_require__ (/snap/nuclear/80/resources/app.asar/dist/main.js:14:7911580)
    at ./src/main.ts (/snap/nuclear/80/resources/app.asar/dist/main.js:14:3826022)
    at __webpack_require__ (/snap/nuclear/80/resources/app.asar/dist/main.js:14:7911580)
    at /snap/nuclear/80/resources/app.asar/dist/main.js:14:7912426
    at Object.<anonymous> (/snap/nuclear/80/resources/app.asar/dist/main.js:14:7912486)
    at Module._compile (node:internal/modules/cjs/loader:1484:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1564:10)
    at Module.load (node:internal/modules/cjs/loader:1295:32)
    at Module._load (node:internal/modules/cjs/loader:1111:12)
> snap info nuclear
name:      nuclear
summary:   nuclear
publisher: nukeop
store-url: https://snapcraft.io/nuclear
contact:   https://github.com/nukeop/nuclear/issues
license:   unset
description: |
  Streaming music player that finds music sources automatically.
commands:
  - nuclear
snap-id:      yivm0p7LFQ6ocuH1kZCLnb70aVMJNZnA
tracking:     latest/stable
refresh-date: today at 15:57 PDT
channels:
  latest/stable:    0.6.44 2025-03-25 (80) 164MB -
  latest/candidate: ↑                            
  latest/beta:      ↑                            
  latest/edge:      ↑                            
installed:          0.6.44            (80) 164MB -

CoolSpot avatar Mar 25 '25 23:03 CoolSpot