domjudge-packaging
domjudge-packaging copied to clipboard
Configuration is unsuitable for single core machines
judgedaemon.conf
contains:
https://github.com/DOMjudge/domjudge-packaging/blob/c566fa91ca5018fccd43f15a1b4b80db9f5125e4/docker-contributor/supervisor/judgedaemon.conf#L3-L3
So supervisor goes ahead and starts 2 judgehosts, domjudge-contributor-0
and domjudge-contributor-1
.
This configuration is unsuitable for running domjudge in single core machines. In a single core machine, if a judging is routed to domjudge-contributor-1
, the daemon id 1 is eventually sent to rungard.c
in the cpuset option. runguard.c
performs a check to ensure cpuset >= 0 && cpuset < nproc
, and crashes the judgehost with Running compile.sh caused an error/crash: /domjudge/bin/runguard: processor ID 1 given as cpuset, but only 1 cores configured
.
Subsequent judgings will succeed since the judgehost gets disabled, but I was thoroughly confused.
I'm unfamiliar with how supervisor works, but ideally numprocs
would be templated in from somewhere that caps it to the actual number of cores on the host.
We should make this an option with default 2 that you can override