audiobookshelf icon indicating copy to clipboard operation
audiobookshelf copied to clipboard

[Bug]: JavaScript heap out of memory

Open maltenizer opened this issue 2 years ago • 4 comments

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

  1. Start a scan of my library.

Audiobookshelf version

2.1.1

How are you running audiobookshelf?

Docker

maltenizer avatar Jul 31 '22 07:07 maltenizer

Was it scanning okay in previous releases? Did you recently add a lot more books?

advplyr avatar Jul 31 '22 19:07 advplyr

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.

maltenizer avatar Jul 31 '22 19:07 maltenizer

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?

advplyr avatar Jul 31 '22 19:07 advplyr

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.

maltenizer avatar Jul 31 '22 19:07 maltenizer

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.

25garfield avatar Oct 12 '22 14:10 25garfield

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

wojtek1171 avatar Oct 15 '22 20:10 wojtek1171

Hopefully fixed in v2.2.15

.. but let me know!

advplyr avatar Feb 11 '23 23:02 advplyr