1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 09:56:51 +03:00

core: still make progress when throttling the manager loop

Don't simply continue after sleeping, it potentially puts us in a state
of spinning doing nothing slowly, if the ratelimit_test() keeps
detecting the need for limiting.

Observed in vms after the host had been suspended for a while, on resume
systemd entered a loop of making zero progress spamming the console
with:
[431942.850090] systemd[1]: Looping too fast. Throttling execution a
little.

I see no reason to have a continue here, the intention should be to
throttle execution, not circumvent it altogether.
This commit is contained in:
Vito Caputo 2015-11-04 17:32:16 -08:00
parent a6bff4a742
commit ad231c7787

View File

@ -2024,7 +2024,6 @@ int manager_loop(Manager *m) {
/* Yay, something is going seriously wrong, pause a little */ /* Yay, something is going seriously wrong, pause a little */
log_warning("Looping too fast. Throttling execution a little."); log_warning("Looping too fast. Throttling execution a little.");
sleep(1); sleep(1);
continue;
} }
if (manager_dispatch_load_queue(m) > 0) if (manager_dispatch_load_queue(m) > 0)