Re: pre-v2.34.0-rc0 regressions: t7900-maintenance.sh broken due to 'systemd-analyze' (was: What's cooking in git.git (Oct 2021, #06; Mon, 25))
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Oct 26, 2021, 18:43 UTC
- Message-ID
- <CAPig+cRMfzHA0vq6YHs4r3BU2UP6eBGvhb8mnEdeW7LB=E4z2w@mail.gmail.com>
- In-Reply-To
- <211026.864k93zteh.gmgdl@evledraar.gmail.com>
On Tue, Oct 26, 2021 at 11:40 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 12 quoted lines
> [...] > So "fixing" that is easy, just have the prereq test that thing in > particular, and why does one thing have a /lib/ prefix, but not the > other? > > But presumably this points to a bigger problem. I.e. we just did a "git > maintenance start" a few lines earlier. > > If I could start something via systemd then presumably it's either up, > or our "start" is buggy and we didn't actually start something, or are > using the wrong (non-portable?) invocation to check the running status > of the thing we just started?
The bit you're missing is that the test script only mocks up starting and stopping the systemd unit:
write_script print-args <<-\EOF &&
printf "%s\n" "$*" >>args
EOF GIT_TEST_MAINT_SCHEDULER="systemctl:./print-args" \
git maintenance start --scheduler=systemd-timer &&So, it's only running the `print-args` script, not actually invoking `systemctl`.
On the other hand, the "analyze" check really is invoking a real systemd command. (Why `systemd-analyze` needs to open /dev/tty0 explicitly rather than just emitting to stdout or stderr is a different question...)
Show 8 quoted lines
> Also aside from that shouldn't this be: > > test_when_finished "systemd-something stop-it some-service" && > systemd-something start-it some-service && > [...] > > Or are runaway services handled somehow by systemd magic (tied to the > PID of the test run?).
Answered above: we're just mocking starting/stopping the unit, not actually launching any background services.