[systemd-devel] systemd+dbus: system boot stops at terminal login screen sometimes

Michal Schmidt mschmidt at redhat.com
Mon Dec 19 02:40:03 PST 2011


----- Original Message -----
> > Does the deadlock go away if you just modify rsyslog.service so
> > that
> > instead of stopping systemd-kmsg-syslogd in ExecStartPre it would
> > do it in ExecStartPost?
> Yeah, it do the trick.

Great. People who are hitting this deadlock can use this as a temprorary workaround.

> >> IMHO, We need to put functions that may block in separate threads,
> >> for
> >> example bus_init(), shutdown_connection(), log_meta().
> >
> > Oh, I'm sure this works, but I'm scared of the additional
> > complexity of threads.
> Agree, but IMHO, from the architectural point of view, smooth running
> of systemd should not depend on quick response of outside
> processes(rsyslogd, dbus).

Yes.
systemd at least partially defends itself from a hanging syslog
by setting SO_SNDTIMEO to 5 seconds. Maybe even that is too much and we
could just make the socket completely non-blocking and just fallback to kmsg
when we get EAGAIN.

I believe there is a way to connect and register to DBus fully
asynchronously too. I'm looking into this.

Michal


More information about the systemd-devel mailing list