[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