audiobookshelf
audiobookshelf copied to clipboard
[Bug]: JavaScript heap out of memory
Describe the issue
Hi.
I really like the software and it works really good.
I have started to encounter problems when scanning my folder with audiobooks. I have lots of book, like 27000 and it seems that it causes issues with the memory handling when it scans the library.
I'm running in a docker on Debian 11 which is virtualized on Proxmox.
From the log:
[2022-07-31 07:10:47] INFO: [Scanner] Starting library scan lscan_jbykbt6osatgn1l2tz for audiobooks
<--- Last few GCs --->
[19:0x7fcda2ad83b0] 1794910 ms: Scavenge (reduce) 1359.3 (1430.9) -> 1359.2 (1431.1) MB, 26.2 / 0.0 ms (average mu = 0.362, current mu = 0.347) allocation failure
[19:0x7fcda2ad83b0] 1794994 ms: Scavenge (reduce) 1362.6 (1434.4) -> 1362.6 (1434.4) MB, 34.0 / 0.0 ms (average mu = 0.362, current mu = 0.347) allocation failure
[19:0x7fcda2ad83b0] 1795032 ms: Scavenge (reduce) 1365.9 (1437.8) -> 1365.9 (1437.8) MB, 12.7 / 0.0 ms (average mu = 0.362, current mu = 0.347) allocation failure
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
npm notice
npm notice New minor version of npm available! 8.11.0 -> 8.15.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.15.1
npm notice Run npm install -g [email protected]
to update!
npm notice
npm ERR! path /
npm ERR! command failed
npm ERR! signal SIGABRT
npm ERR! command sh -c node index.js
npm ERR! A complete log of this run can be found in:
Steps to reproduce the issue
- Start a scan of my library.
Audiobookshelf version
2.1.1
How are you running audiobookshelf?
Docker
Was it scanning okay in previous releases? Did you recently add a lot more books?
I've had issues with the previous versions too. But sometimes the scan have worked, other times it have failed, The last scan I added perhaps 50 books or so. Now i can't finish the scan no matter what.
Can you try putting some of your books into a separate library so we can test if this has to do with the library size?
I'm going to try and give the OS some more memory first, but I don't think the OS runs out of memory. If it won't help I will try and split the books up in some more libraries.
did this get sorted, I'm running 2.2.1 in a docker on a synology nas and getting the same error it ran for a few days then once it got loaded with less than 2000 books it fell over and now wont run at all.
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory | stderr
now the docker runs up and fails then restarts again and again, I cant even get to the front end.
I have simmilar issue trying to install the app on my VPS (Debian 11, 1GB RAM)
2022-10-14 21:05:32,414: DEBUG - ✔ Nuxt files generated 2022-10-14 21:05:34,299: DEBUG - ℹ Compiling Client 2022-10-14 21:05:53,033: DEBUG - 2022-10-14 21:05:53,034: DEBUG - WARN 2022-10-14 21:05:53,034: DEBUG - 2022-10-14 21:05:53,035: DEBUG - 2022-10-14 21:05:53,035: DEBUG - WARN warn - The purge/content options have changed in Tailwind CSS v3.0. 2022-10-14 21:05:53,035: DEBUG - 2022-10-14 21:05:53,035: DEBUG - 2022-10-14 21:05:53,035: DEBUG - WARN warn - Update your configuration file to eliminate this warning. 2022-10-14 21:05:53,036: DEBUG - 2022-10-14 21:05:53,036: DEBUG - 2022-10-14 21:05:53,036: DEBUG - WARN warn - https://tailwindcss.com/docs/upgrade-guide#configure-content-sources 2022-10-14 21:05:53,036: DEBUG - 2022-10-14 21:07:45,028: DEBUG - 2022-10-14 21:07:45,057: DEBUG - <--- Last few GCs ---> 2022-10-14 21:07:45,057: DEBUG - 2022-10-14 21:07:45,057: DEBUG - [8319:0x561c790] 134358 ms: Mark-sweep 475.0 (499.2) -> 472.0 (499.9) MB, 1324.2 / 0.1 ms (average mu = 0.353, current mu = 0.168) allocation failure scavenge might not succeed 2022-10-14 21:07:45,059: DEBUG - [8319:0x561c790] 136003 ms: Mark-sweep 476.4 (500.2) -> 473.5 (501.4) MB, 1439.6 / 0.0 ms (average mu = 0.250, current mu = 0.125) allocation failure scavenge might not succeed 2022-10-14 21:07:45,059: DEBUG - 2022-10-14 21:07:45,059: DEBUG - 2022-10-14 21:07:45,059: DEBUG - <--- JS stacktrace ---> 2022-10-14 21:07:45,059: DEBUG - 2022-10-14 21:07:45,060: DEBUG - FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 2022-10-14 21:07:45,060: DEBUG - 1: 0xb06730 node::Abort() [node] 2022-10-14 21:07:45,060: DEBUG - 2: 0xa1b6d0 [node] 2022-10-14 21:07:45,061: DEBUG - 3: 0xce1dd0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node] 2022-10-14 21:07:45,062: DEBUG - 4: 0xce2177 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node] 2022-10-14 21:07:45,063: DEBUG - 5: 0xe997e5 [node] 2022-10-14 21:07:45,064: DEBUG - 6: 0xea94ad v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node] 2022-10-14 21:07:45,066: DEBUG - 7: 0xeac1ae v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node] 2022-10-14 21:07:45,068: DEBUG - 8: 0xe6d6ea v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node] 2022-10-14 21:07:45,070: DEBUG - 9: 0x11e6456 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node] 2022-10-14 21:07:45,071: DEBUG - 10: 0x15da0d9 [node] 2022-10-14 21:07:45,266: DEBUG - Aborted
I increased swap memory but it didn't help. Maybe my issue is related with that