Java dies with “Not enough space” before the run starts
scripts/validate_mimic.sh hands the run to scripts/validate.sh, and that
helper picks the Java heap size. It used to trust the MemAvailable number
from /proc/meminfo and cap the heap at 32 GB. On a default WSL2 install that
number oversells what you can actually get: the kernel advertises a large
amount of address space while the real commit limit is much smaller, so Java
asks for a heap the OS was never going to grant and dies immediately with
“Not enough space”.
The helper now also reads the kernel CommitLimit and clamps the heap to 75%
of that budget, still bounded between 2 GB and 32 GB, so the default
validation run only asks for memory the OS will actually commit.
If you want a smaller heap anyway, set PIPELINE_HEAP (in MB) before
re-running:
A big run asks for too much memory or fills the disk
scripts/run_pipeline.sh and scripts/run_input.sh use the same clamp for
normal runs. Autoscale starts from CPU and RAM, clamps the Java heap against
Linux CommitLimit when it is available, and checks free space on the
output/work filesystem, so a machine with a small backing disk does not start
an oversized heap or too many concurrent dataset runners.
The knobs:
The output folder has no CSV files
That is the default, not a failure. The normal run writes everything intoannotations.sqlite instead of per-note CSV/XMI/HTML files. If the site needs
the older folder layout for a debug or handoff run:
DocTimeRel, temporal relations, or coreference chains are empty
Expected for this release. The shipped.piper files leave out
TsTemporalSubPipe and TsCorefSubPipe because those stages add noticeable
compute and are not part of the default production footprint. The lightweight
local WSD layer is still on by default, but it is a heuristic reranker, not a
substitute for full temporal reasoning or cross-mention coreference
resolution.
If you need temporal or coreference annotations, add those sub-pipelines in
your own descriptor and treat the result as a custom deployment: re-benchmark
the runtime, re-run the semantic validation, and confirm the new outputs are
actually populated before anyone queries them.