[Bug]: ERR_DLOPEN_FAILED on startup #2099

Open
opened 2026-02-20 10:15:50 -05:00 by deekerman · 1 comment
Owner

Originally created by @D0ckW0rka on GitHub (Jul 10, 2024).

What happened?

I've installed ABS, following the guide for Debian on a Debian 12 system.
The service won't start and the syslog-messages shows the logs (posted under logs)

OS: Debian 12 (6.1.90-1)

What did you expect to happen?

The service should be up and running after the installation or at least by starting it manually (systemctl restart audiobookshelf.service)

Steps to reproduce the issue

  1. Fresh install following the guide for Linux/Debian
  2. Try to start the service (systemctl restart audiobookshelf.service)

Audiobookshelf version

v2.11.0

How are you running audiobookshelf?

Debian/PPA

What OS is your Audiobookshelf server hosted from?

Linux

If the issue is being seen in the UI, what browsers are you seeing the problem on?

None

Logs

systemd[1]: Started audiobookshelf.service - Self-hosted audiobook server for managing and playing audiobooks.
audiobookshelf[808875]: pkg/prelude/bootstrap.js:1872
audiobookshelf[808875]:       throw error;
audiobookshelf[808875]:       ^
audiobookshelf[808875]: Error: /tmp/pkg/1f8cc72dfb50f0c54b04dd7a709ef5ef89b2b1f3b063270646bd12c81173b2e8/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node: failed to map segment from shared object
audiobookshelf[808875]:     at process.dlopen (pkg/prelude/bootstrap.js:2255:28)
audiobookshelf[808875]:     at Module._extensions..node (node:internal/modules/cjs/loader:1473:18)
audiobookshelf[808875]:     at Module.load (node:internal/modules/cjs/loader:1207:32)
audiobookshelf[808875]:     at Module._load (node:internal/modules/cjs/loader:1023:12)
audiobookshelf[808875]:     at Module.require (node:internal/modules/cjs/loader:1235:19)
audiobookshelf[808875]:     at Module.require (pkg/prelude/bootstrap.js:1851:31)
audiobookshelf[808875]:     at require (node:internal/modules/helpers:176:18)
audiobookshelf[808875]:     at Object.<anonymous> (/snapshot/audiobookshelf/node_modules/sqlite3/lib/sqlite3-binding.js:4:17)
audiobookshelf[808875]:     at Module._compile (pkg/prelude/bootstrap.js:1930:22)
audiobookshelf[808875]:     at Module._extensions..js (node:internal/modules/cjs/loader:1435:10) {
audiobookshelf[808875]:   code: 'ERR_DLOPEN_FAILED'
audiobookshelf[808875]: }
audiobookshelf[808875]: Node.js v20.11.1
systemd[1]: audiobookshelf.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: audiobookshelf.service: Failed with result 'exit-code'.

Additional Notes

I found this line in the logs "Error: /tmp/pkg/1f8cc72dfb50f0c54b04dd7a709ef5ef89b2b1f3b063270646bd12c81173b2e8/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node". This path/file exists.

I did a fresh/clean install on another Debian 12 VM and played around with the /tmp mount settings.
It seems, that using "noexec" as mount-option breaks the thing.
This way doesn't work:
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=1G 0 0
This one does:
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,mode=1777,size=1G 0 0

My /tmp (on the prod-server) is mounted with "nosuid,nodev,noexec"

Originally created by @D0ckW0rka on GitHub (Jul 10, 2024). ### What happened? I've installed ABS, following the [guide for Debian](https://www.audiobookshelf.org/docs/) on a Debian 12 system. The service won't start and the syslog-messages shows the logs (posted under logs) OS: Debian 12 (6.1.90-1) ### What did you expect to happen? The service should be up and running after the installation or at least by starting it manually (systemctl restart audiobookshelf.service) ### Steps to reproduce the issue 1. Fresh install following the [guide for Linux/Debian](https://www.audiobookshelf.org/docs/) 2. Try to start the service (systemctl restart audiobookshelf.service) ### Audiobookshelf version v2.11.0 ### How are you running audiobookshelf? Debian/PPA ### What OS is your Audiobookshelf server hosted from? Linux ### If the issue is being seen in the UI, what browsers are you seeing the problem on? None ### Logs ```shell systemd[1]: Started audiobookshelf.service - Self-hosted audiobook server for managing and playing audiobooks. audiobookshelf[808875]: pkg/prelude/bootstrap.js:1872 audiobookshelf[808875]: throw error; audiobookshelf[808875]: ^ audiobookshelf[808875]: Error: /tmp/pkg/1f8cc72dfb50f0c54b04dd7a709ef5ef89b2b1f3b063270646bd12c81173b2e8/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node: failed to map segment from shared object audiobookshelf[808875]: at process.dlopen (pkg/prelude/bootstrap.js:2255:28) audiobookshelf[808875]: at Module._extensions..node (node:internal/modules/cjs/loader:1473:18) audiobookshelf[808875]: at Module.load (node:internal/modules/cjs/loader:1207:32) audiobookshelf[808875]: at Module._load (node:internal/modules/cjs/loader:1023:12) audiobookshelf[808875]: at Module.require (node:internal/modules/cjs/loader:1235:19) audiobookshelf[808875]: at Module.require (pkg/prelude/bootstrap.js:1851:31) audiobookshelf[808875]: at require (node:internal/modules/helpers:176:18) audiobookshelf[808875]: at Object.<anonymous> (/snapshot/audiobookshelf/node_modules/sqlite3/lib/sqlite3-binding.js:4:17) audiobookshelf[808875]: at Module._compile (pkg/prelude/bootstrap.js:1930:22) audiobookshelf[808875]: at Module._extensions..js (node:internal/modules/cjs/loader:1435:10) { audiobookshelf[808875]: code: 'ERR_DLOPEN_FAILED' audiobookshelf[808875]: } audiobookshelf[808875]: Node.js v20.11.1 systemd[1]: audiobookshelf.service: Main process exited, code=exited, status=1/FAILURE systemd[1]: audiobookshelf.service: Failed with result 'exit-code'. ``` ### Additional Notes I found this line in the logs "Error: /tmp/pkg/1f8cc72dfb50f0c54b04dd7a709ef5ef89b2b1f3b063270646bd12c81173b2e8/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node". This path/file exists. I did a fresh/clean install on another Debian 12 VM and played around with the /tmp mount settings. It seems, that using "noexec" as mount-option breaks the thing. This way doesn't work: `tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=1G 0 0` This one does: `tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,mode=1777,size=1G 0 0` My /tmp (on the prod-server) is mounted with "nosuid,nodev,noexec"
Author
Owner

@D0ckW0rka commented on GitHub (Mar 28, 2025):

Would it be possible to use another folder as temp-directory for the application? Maybe it could be specified in some config-file

@D0ckW0rka commented on GitHub (Mar 28, 2025): Would it be possible to use another folder as temp-directory for the application? Maybe it could be specified in some config-file
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/audiobookshelf-advplyr#2099
No description provided.