SIGN IN SIGN UP

22106 FIX job: explain in the details what information is missing

"Got incomplete information for this job" was yielded from three different
situations and told them apart in none of them: no file of a completed run at
all, one without an exit code, one without a start time. So was the WARN about
a running file we cannot date, which at least named the pid.

The summary of the UNKNOWN stays as it is, because werk 22105 quotes it and
because the state is what the service list is for. The details of each of them
now say in one line what is missing and what most likely caused it - as a
suspicion, because that is all it can be from here. The reasoning behind each
suspicion stays in the source, where it is of use to us and not to the admin
reading a service.

The missing exit code needed that reasoning written down, because it is the one
case that looks unreachable at first: since 2.3.0 mk-job writes the exit code
from the shell, unconditionally and last, and werk 15450 made the move into
place atomic. That atomicity is rename(2), though, and mv can only rename
within a filesystem. With $TMPDIR elsewhere - a tmpfs /tmp, or any unit with
PrivateTmp=yes - mv copies to the final name instead, and a copy that fails or
is interrupted leaves the file truncated for good, missing the last line it was
about to write. Verified by hand: a cross-filesystem mv cut short leaves the
partial file at the completed name, and the plug-in reads it as a completed job
without an exit code.

That also makes an empty file say the same thing, which is why there is nothing
left to distinguish between the two.

CMK-35333

Change-Id: I17938b80c644a9a9832cb46a52d2a55ac7aeda45
A
Andreas Hasenkopf committed
f5c955653595a245567888134d6cd689f1f8d488
Parent: bd1cee4
Committed by Jenkins <jenkins@review.lan.tribe29.com> on 8/25/2026, 8:06:04 AM