Commit ea12a216 authored by Michael Biebl's avatar Michael Biebl
Browse files

Avoid reload and (re)start requests during early boot which can lead to deadlocks. Closes: #624599

parent 74ac0fef
......@@ -13,6 +13,8 @@ systemd (44-5) UNRELEASED; urgency=low
[ Michael Biebl ]
* Update Vcs-* fields, the Git repository is hosted on alioth now. Set the
default branch to "debian".
* Avoid reload and (re)start requests during early boot which can lead to
deadlocks. Closes: #624599
-- Tollef Fog Heen <tfheen@debian.org> Tue, 16 Oct 2012 18:09:10 +0200
......
......@@ -1733,6 +1733,21 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove
dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id);
return -EINVAL;
}
/* Trying to reload services from multi-user.target
* during the early boot stage can lead to deadlocks.
* An example is samba being reloaded by the dhcp hook
* when the network is activated during rcS.
* As a workaround we ignore reload or (re)start
* requests while sysinit.target is queued for
* services which have the DefaultDependencies option
* set to yes.
*
* See http://bugs.debian.org/624599 */
if (strcmp(j->unit->id, "sysinit.target") == 0 && unit->default_dependencies) {
log_debug("sysinit.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id);
dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "sysinit.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id);
return -EINVAL;
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment