bash-language-server icon indicating copy to clipboard operation
bash-language-server copied to clipboard

JavaScript heap out of memory and Helix says language server has exited

Open David-Else opened this issue 5 months ago • 0 comments

Code editor

Helix

Platform

Linux, Debian 13

Version

5.4.3

What steps will reproduce the bug?

Sometimes the server crashes and Helix warns the language server has exited, I can't reliably reproduce, but here is the log and below the script that was being edited in the most recent occurrence:

2025-09-18T10:15:05.498 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "<--- Last few GCs --->\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "[197136:0x55b29044fe20]   134022 ms: Mark-Compact 1999.7 (2081.4) -> 1988.3 (2082.6) MB, 2726.52 / 0.00 ms  (average mu = 0.131, current mu = 0.014) task; scavenge might not succeed\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "[197136:0x55b29044fe20]   136763 ms: Mark-Compact 2002.2 (2082.6) -> 1990.1 (2084.6) MB, 2705.83 / 0.00 ms  (average mu = 0.076, current mu = 0.013) task; scavenge might not succeed\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "<--- JS stacktrace --->\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "----- Native stack trace -----\n"
2025-09-18T10:15:05.506 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:15:05.513 helix_lsp::transport [ERROR] bash-language-server err <- " 1: 0x7f341d03a908 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.513 helix_lsp::transport [ERROR] bash-language-server err <- " 2: 0x7f341d5ebc30 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.514 helix_lsp::transport [ERROR] bash-language-server err <- " 3: 0x7f341d5ebff5 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.514 helix_lsp::transport [ERROR] bash-language-server err <- " 4: 0x7f341d7fa7c7  [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.515 helix_lsp::transport [ERROR] bash-language-server err <- " 5: 0x7f341d7fa84b  [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.515 helix_lsp::transport [ERROR] bash-language-server err <- " 6: 0x7f341d811390 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.516 helix_lsp::transport [ERROR] bash-language-server err <- " 7: 0x7f341d811e6a v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.516 helix_lsp::transport [ERROR] bash-language-server err <- " 8: 0x7f341d86979c v8::internal::MinorGCJob::Task::RunInternal() [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.517 helix_lsp::transport [ERROR] bash-language-server err <- " 9: 0x7f341d1edd55 node::PerIsolatePlatformData::RunForegroundTask(std::unique_ptr<v8::Task, std::default_delete<v8::Task> >) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.517 helix_lsp::transport [ERROR] bash-language-server err <- "10: 0x7f341d1eeb77 node::PerIsolatePlatformData::FlushForegroundTasksInternal() [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.517 helix_lsp::transport [ERROR] bash-language-server err <- "11: 0x7f341fad30a3  [/lib/x86_64-linux-gnu/libuv.so.1]\n"
2025-09-18T10:15:05.517 helix_lsp::transport [ERROR] bash-language-server err <- "12: 0x7f341fae7c57  [/lib/x86_64-linux-gnu/libuv.so.1]\n"
2025-09-18T10:15:05.517 helix_lsp::transport [ERROR] bash-language-server err <- "13: 0x7f341fad3e56 uv_run [/lib/x86_64-linux-gnu/libuv.so.1]\n"
2025-09-18T10:15:05.518 helix_lsp::transport [ERROR] bash-language-server err <- "14: 0x7f341d075503 node::SpinEventLoopInternal(node::Environment*) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.518 helix_lsp::transport [ERROR] bash-language-server err <- "15: 0x7f341d1c0e49 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.518 helix_lsp::transport [ERROR] bash-language-server err <- "16: 0x7f341d1c121b node::NodeMainInstance::Run() [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.519 helix_lsp::transport [ERROR] bash-language-server err <- "17: 0x7f341d124a6a node::Start(int, char**) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:15:05.519 helix_lsp::transport [ERROR] bash-language-server err <- "18: 0x7f341c433ca8  [/lib/x86_64-linux-gnu/libc.so.6]\n"
2025-09-18T10:15:05.519 helix_lsp::transport [ERROR] bash-language-server err <- "19: 0x7f341c433d65 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]\n"
2025-09-18T10:15:05.519 helix_lsp::transport [ERROR] bash-language-server err <- "20: 0x55b28aa56031 _start [node]\n"
2025-09-18T10:15:05.646 helix_lsp::transport [ERROR] bash-language-server err: <- StreamClosed
2025-09-18T10:30:25.333 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:27.426 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:32.572 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:32.879 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.091 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.279 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.455 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.584 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.767 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.835 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:33.999 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:35.728 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:48.666 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:48.742 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.242 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.273 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.304 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.334 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.365 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.395 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.426 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.457 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.488 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.518 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.549 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.579 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:49.823 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:50.022 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:50.190 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:50.374 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:50.919 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:30:57.860 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:31:04.697 helix_lsp::transport [ERROR] bash-language-server err: <- IO(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })
2025-09-18T10:35:26.315 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "<--- Last few GCs --->\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "[199070:0x5583ed68fe20]   147703 ms: Mark-Compact 2000.6 (2082.6) -> 1988.6 (2083.9) MB, 2760.44 / 0.00 ms  (average mu = 0.111, current mu = 0.015) task; scavenge might not succeed\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "[199070:0x5583ed68fe20]   150053 ms: Mark-Compact 2002.7 (2083.9) -> 1990.5 (2085.9) MB, 2307.90 / 0.00 ms  (average mu = 0.070, current mu = 0.018) task; scavenge might not succeed\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "<--- JS stacktrace --->\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "----- Native stack trace -----\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- "\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- " 1: 0x7fae97a3a908 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- " 2: 0x7fae97febc30 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- " 3: 0x7fae97febff5 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- " 4: 0x7fae981fa7c7  [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- " 5: 0x7fae981fa84b  [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.318 helix_lsp::transport [ERROR] bash-language-server err <- " 6: 0x7fae98211390 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.319 helix_lsp::transport [ERROR] bash-language-server err <- " 7: 0x7fae98211e6a v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.319 helix_lsp::transport [ERROR] bash-language-server err <- " 8: 0x7fae9826979c v8::internal::MinorGCJob::Task::RunInternal() [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.320 helix_lsp::transport [ERROR] bash-language-server err <- " 9: 0x7fae97bedd55 node::PerIsolatePlatformData::RunForegroundTask(std::unique_ptr<v8::Task, std::default_delete<v8::Task> >) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.320 helix_lsp::transport [ERROR] bash-language-server err <- "10: 0x7fae97beeb77 node::PerIsolatePlatformData::FlushForegroundTasksInternal() [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.320 helix_lsp::transport [ERROR] bash-language-server err <- "11: 0x7fae9a5bf0a3  [/lib/x86_64-linux-gnu/libuv.so.1]\n"
2025-09-18T10:35:26.320 helix_lsp::transport [ERROR] bash-language-server err <- "12: 0x7fae9a5d3c57  [/lib/x86_64-linux-gnu/libuv.so.1]\n"
2025-09-18T10:35:26.320 helix_lsp::transport [ERROR] bash-language-server err <- "13: 0x7fae9a5bfe56 uv_run [/lib/x86_64-linux-gnu/libuv.so.1]\n"
2025-09-18T10:35:26.320 helix_lsp::transport [ERROR] bash-language-server err <- "14: 0x7fae97a75503 node::SpinEventLoopInternal(node::Environment*) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.321 helix_lsp::transport [ERROR] bash-language-server err <- "15: 0x7fae97bc0e49 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.321 helix_lsp::transport [ERROR] bash-language-server err <- "16: 0x7fae97bc121b node::NodeMainInstance::Run() [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.322 helix_lsp::transport [ERROR] bash-language-server err <- "17: 0x7fae97b24a6a node::Start(int, char**) [/lib/x86_64-linux-gnu/libnode.so.115]\n"
2025-09-18T10:35:26.322 helix_lsp::transport [ERROR] bash-language-server err <- "18: 0x7fae96e33ca8  [/lib/x86_64-linux-gnu/libc.so.6]\n"
2025-09-18T10:35:26.322 helix_lsp::transport [ERROR] bash-language-server err <- "19: 0x7fae96e33d65 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]\n"
2025-09-18T10:35:26.322 helix_lsp::transport [ERROR] bash-language-server err <- "20: 0x5583ca694031 _start [node]\n"
2025-09-18T10:35:26.450 helix_lsp::transport [ERROR] bash-language-server err: <- StreamClosed
#!/bin/bash

if [ $# -eq 0 ]; then
    echo "Please supply argument in minutes"
    exit 1
fi

echo "Suspending in $1 minutes, turning off monitor"
sleep 1
ddcutil setvcp d6 0x05 # turn off monitor, now can't wake on movement
sleep "$1"m
ddcutil setvcp d6 0x01 # turn on monitor, turn buzzer off in settings
sleep 1
systemctl suspend -i

How often does it reproduce? Is there a required condition?

No response

What is the expected behavior?

Not crashing

What do you see instead?

Helix says language server has exited.

Additional information

No response

David-Else avatar Sep 18 '25 09:09 David-Else