Wappler Version: 7.9.7
Operating System: Fedora Linux 44 (Electron 35.7.0 / Chrome 134)
Server Model: NodeJS (Docker project)
Summary
With Problems panel auto-scan enabled, normal editing work (opening/closing tabs, editing + saving files) makes the main renderer process grow by hundreds of MB which are never released. Within roughly 30–40 minutes of active work it reaches the V8 heap cap (--max_old_space_size=4096) and the renderer crashes with SIGILL/SIGTRAP (V8 IMMEDIATE_CRASH on failed allocation). Before crashing, Wappler becomes extremely slow with the renderer stuck at ~23% CPU (GC thrashing). I have coredumps of these crashes going back weeks.
With auto-scan disabled, the exact same workload spikes memory temporarily but it is released again — the app stays stable and fast.
Measurements (same ~5 min workload: open/close tabs, edit + save)
| auto-scan ON | auto-scan OFF | |
|---|---|---|
| Renderer memory (PSS) | 421 MB → 903 MB, keeps climbing | spikes to ~950 MB, then drops back to ~690 MB |
| JS heap after forced full GC | never recovers | 240 MB vs 225 MB baseline (~15 MB retained) |
| Renderer CPU while idle | ~23% (GC thrash) | normal |
Measured with a per-process PSS logger (60s samples) plus Runtime.getHeapUsage / forced GC over the remote debugging port.
Heap profile — where the memory goes
A CDP sampling heap profiler attached to the main renderer shows retained memory dominated by node:vm compiled Script objects (Script / makeContextifyScript / bytecode compiler ≈ 37 MB after only a few minutes) plus hjson parsing. It looks like the validation host compiles vm scripts on every scan and the compiled scripts are retained; with auto-scan on, every save/tab switch re-validates the whole project, multiplying this without bound. Happy to share the sampling profile JSON and the memory logs.
Possibly related secondary bug
Toggling Problems auto-scan off in the settings UI did not take effect in the running session (validation still fired on save minutes later) and was not persisted to options.json. Options seem to be written only on a real quit, and closing the window keeps Wappler alive in the tray — so the toggle was silently lost. I had to set "problemsAutoScan": false in ~/.config/wappler/options.json manually while Wappler was fully closed.
Related earlier reports
- Wappler New Problems Panel - Memory Bomb! (marked fixed in 7.7.6, but the behavior above is on 7.9.7)
- Wappler crashes when closing a file with a huge spike in memory usage