v0.4.0-rc1
Added
-
Pooled emulated Indy mode.
runner serveforks one listener per configured identity and runs each job in a throwaway container holding an emulated SGI Indy, so a Linux host with Docker can serve IRIX jobs without an SGI.--imagepicks the worker image,--job-timeoutbounds a wedged emulator.runner configure --count N --name-prefix Pregisters N identities asP-0,P-1and so on, each with its own credentials, work folder and anemulatedlabel.run,statusandremovetake--diror the same--count/--name-prefixpair.runner execjob --message FILEruns one job from a message file with no configured runner present. This is what the guest runs.--cancel-file PATHcancels a running job when that file's mtime changes.SIGINTandSIGTERMcancel rather than kill, so the job still reports a result.servesendscompletejobitself when a container dies without the guest reporting. Nothing renews a job lock, so an unreported job otherwise leaves that identity online atcurrentParallelism: 1and never dispatched to again.- The worker image is published as
ghcr.io/sgidevnet/irix-worker. The IRIX disk image is supplied by the operator and is not redistributed here. selftestreports the Docker daemon's version, and why its socket could not be reached when it could not.
-
Linux x86_64 and arm64 tarballs. They need glibc 2.39 and OpenSSL 3 from the host and carry no
cert.pem, because off IRIX the runner reads the distribution's own trust store.
Changed
- The release cross-compiles every target on Linux and runs each binary's unit tests on hardware of its own architecture before packaging. The IRIX binary now comes from clang and LLD against a cross-built OpenSSL 1.1.1w rather than SGUG's GCC 9.2 and 1.1.1d. No source changed, and
makeon an SGI still uses GCC.
Fixed
- The job lease was never renewed, so the run service dropped any job past ten minutes and
completejobanswered 404. uname -sisIRIXon a 32-bit kernel andIRIX64on a 64-bit one, so an Indy took the Linux branch of the Makefile and failed on the first header.connecttreated anypollreturn other than 1 as a failure, so a signal arriving mid-connect failed the connection.