Am 27.03.2014 02:29, schrieb Michael Biebl:
> Am 26.03.2014 17:39, schrieb Andreas Cadhalpun:

> The sequence of events is
> a/ make sure cups.socket is running and correctly setup
> b/ make sure cups.service is not running
> c/ make /etc/systemd/system/cups.socket.d/cupsd-listen.conf a dangling
> symlink
> d/ trigger a daemon-reload
> e/ trigger activity on the cups socket, e.g. via lpq
>    → You get the abort

As mentioned on IRC, the problem is triggered in src/core/socket.c:
socket_enter_running(), when the incoming request causes the start of
the corresponding service unit via
r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service),
JOB_REPLACE, true, &error, NULL);


I think after the socket configuration has been messed up and the
daemon-reload, UNIT_DEREF(s->service) does no longer point to a valid
unit, and so the assert in manager_add_job() kicks in.

Ideas how to address this?
Should we just stop a socket if we detect on daemon-reload that the
socket configuration has been messed up?

Or should we do some sanity-checking of the unit in socket_enter_running
before we pass it on to manager_add_job()?
-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to