JVM exited unexpectedly

So...
This is happening:

INFO   | jvm 2    | 2025/02/04 10:47:03 | #
INFO   | jvm 2    | 2025/02/04 10:47:03 | # There is insufficient memory for the Java Runtime Environment to continue.
INFO   | jvm 2    | 2025/02/04 10:47:03 | # Native memory allocation (malloc) failed to allocate 2176976 bytes for Chunk::new
INFO   | jvm 2    | 2025/02/04 10:47:03 | # An error report file with more information is saved as:
INFO   | jvm 2    | 2025/02/04 10:47:03 | # C:\Program Files\Inductive Automation\Ignition\hs_err_pid8848.log
INFO   | jvm 2    | 2025/02/04 10:47:04 | #
INFO   | jvm 2    | 2025/02/04 10:47:04 | # Compiler replay data is saved as:
INFO   | jvm 2    | 2025/02/04 10:47:04 | # C:\Program Files\Inductive Automation\Ignition\replay_pid8848.log
ERROR  | wrapper  | 2025/02/04 10:47:04 | JVM exited unexpectedly.
INFO   | jvm 1    | 2025/02/04 10:28:25 | OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006a8000000, 1149239296, 0) failed; error='The paging file is too small for this operation to complete' (DOS error/errno=1455)
INFO   | jvm 1    | 2025/02/04 10:28:25 | #
INFO   | jvm 1    | 2025/02/04 10:28:25 | # There is insufficient memory for the Java Runtime Environment to continue.
INFO   | jvm 1    | 2025/02/04 10:28:25 | # Native memory allocation (mmap) failed to map 1149239296 bytes for G1 virtual space
INFO   | jvm 1    | 2025/02/04 10:28:25 | # An error report file with more information is saved as:
INFO   | jvm 1    | 2025/02/04 10:28:25 | # C:\Program Files\Inductive Automation\Ignition\hs_err_pid864.log
ERROR  | wrapper  | 2025/02/04 10:28:26 | JVM exited unexpectedly.

Any help to fix this would be great or to find the problem or the issue.

Currently running on Windows Server 2019 with 8GB of memory.
Looking at CPU trend and Memory trend they stay on a 4% and max 1200.

Thanks in advance.

What is the setting for maximum memory in ignition.conf ? I suspect it is close to, or perhaps even larger than, the physical RAM in that machine. You must leave some RAM for the OS to use. And if not dedicated to just Ignition, you may also need to leave more RAM available for other applications. (It is especially bad to run a DB on the same server.)

In a production machine, the initial memory configuration should be the same as the maximum memory. In production, the JVM will eventually ask for it all, and if it cannot get it all, you get the kind of crash you've shown us.

Is this a virtualized environment? If so, is the host attempting to 'share' resources? VM host software often tries to overprovision, under the debatable reasoning that most VMs, most of the time, don't actually use all their "allocated" memory (at the VM level; separate from the JVM).

In other words - in addition to Phil's recommendations, make sure (if this is a VM) that it's set to have dedicated resources from the host environment, so that the 8gB the VM has been promised is always available.

1 Like