Open martinpitt opened 4 months ago
FTR: It's not the debouncing; running the event handler every time still fails. I also checked the docs, and debounce()
should run one last time after a series of events.
But it's not a "static" failure -- after this fails, I ssh in and loginctl list-users
shows
1000 admin no closing
so it's something about events.
The weather report shows this very prominently on arch.
On CI infa there's just one additional test which runs before:
But that's not it. Locally I can reproduce in a loop of 10 runs, but it's very hard.
With an extra debug comit I get debug logs with passing and failing tests on CI.
In the passing log, there is a single query to logind for which users are currently active, and it gives the expected result (a "closing" state):
But in the failing log there are four of these calls, presumably because the test waits much longer. But all of these still report session state "active". In other words, the
loginctl terminate-user admin
somehow didn't work. In the passing log, there are countlessPropertiesChanged
events for/org/freedesktop/systemd1/unit/user_401000_2eservice
, going from "active" to "deactivating" (multiple substates likestop-sigterm
andfinal-sigkill
tostop
), and finally anUnitRemoved
for it. We also get aSessionRemoved
signal (which our event handler reacts to), but somehow querying logind at that point still gives the old "active" value.Originally posted by @martinpitt in https://github.com/cockpit-project/cockpit/issues/20579#issuecomment-2172527892