Good morning everyone,
I'm playing around a bit with systemd's socket based activation of
systemd-journald. My intention is to shift back in time the actual startup of
systemd-journald.service to save resources (CPU) for early applications during
startup. The respective socket is activated as usual to not lose any early
(sys)logs. The actual startup of the service is delayed by adding some
dependencies to targets (basic.target for instance).
In principal, the idea is working as expected but sometimes the logging via
syslog("..") blocks applications until the daemon is actually started.
Depending on how the startup of such application is integrated into the startup
configuration, this might lead to deadlock situations.
Has anyone here any idea how one can prevent the blocking situation.
Some observations:
- The blocking situation is not happening on each syslog call, sometimes this
happens after one call, sometimes after a few calls. I wasn't able by now
isolating the concrete case that leads to a blocking socket
- I doubt that the underlying socket buffer is full
- The call is blocked by the kernel syscall send() that is invoked by the
syslog() call
Thx in advance for any hints ...
Best regards
Marko Hoyer
Advanced Driver Information Technology GmbH
Software Group II (ADITG/SW2)
Robert-Bosch-Str. 200
31139 Hildesheim
Germany
Tel. +49 5121 49 6948
Fax +49 5121 49 6999
[email protected]
ADIT is a joint venture company of Robert Bosch GmbH/Robert Bosch Car
Multimedia GmbH and DENSO Corporation
Sitz: Hildesheim, Registergericht: Amtsgericht Hildesheim HRB 3438
Geschäftsführung: Wilhelm Grabow, Katsuyoshi Maeda
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel