Skip to content

Events

Each job appends one JSON line per event to events.jsonl in its directory, in order, with a sequence number, a timestamp, the job id, case, host and executor, and attributes that depend on the kind. The same events go to the instrumentation database, where job.submitted links to the tool call that made it.

wait_for with since_seq uses the sequence numbers to return at once when a transition already happened.

The kinds below are read from the code; a kind added there without a description here fails the docs build.

KindWhen it is written
figures.renderedA figure set was written: views, files, anything skipped.
job.cancel_abort_failedcancel_job could not abort the queue task. The cancel marker still stops the job.
job.cancelledTerminal: cancel_job stopped it; the container is gone.
job.deleteddelete_job removed the job directory.
job.detachedThe worker stopped while the job ran. Its step keeps running in the container.
job.editedset_end_time changed endTime while the job ran.
job.failedTerminal: a reason (exit, lost, exception, launch_failed), the step, and error_excerpt from the first fatal line of the log.
job.finishedTerminal: every step done. Duration, iterations, final coefficients.
job.host_freeThe hold is over; carries how long it lasted.
job.prunedprune_job removed intermediate time levels or samples; carries what went and the space freed.
job.reattachedA worker picked a running job back up after a restart.
job.startedThe worker took the job and its container is up; carries the queue wait.
job.submittedWritten inside the submit call: steps, ranks, queue position. Links to that call in the instrumentation database.
job.waiting_for_diskHeld because the jobs disk is under min_free_gb.
job.waiting_for_hostHeld because another job, or an OpenFOAM container the server did not start, occupies the host.
job.waiting_for_maintenanceHeld by a maintenance marker in the jobs directory; carries its reason.
mesh.phasesnappyHexMesh moved to a new phase (castellating, snapping, layers), with the cell count.
point.finishedA sweep point ended, with its window-mean coefficients.
point.startedA sweep point began: alpha, beta, start iteration.
point.write_nowNear a point's end the watcher asked the solver to write fields now, so the next point starts from them.
solver.convergedThe stop rule was met (the watcher lowered endTime), or the solver reported convergence itself.
solver.progressEvery progress_every iterations: residuals, coefficients, drift, rate, ETA.
step.finishedA step ended: exit code, duration, and what the parsers read from its log (cells, mesh quality, iterations).
step.startedA step began: name, index, total.
watcher.errorThe watcher failed to sample. The job keeps running; the error is also in the step summary.