Bug#759849: multipath-tools: FTBFS: uxsock.c:20:31: fatal error: systemd/sd-daemon.h: No such file or directory

Ritesh Raj Sarraf rrs at debian.org
Tue Sep 2 08:03:47 UTC 2014

On Monday 01 September 2014 07:48 PM, Michael Biebl wrote:
>> In native init scripts, we did a lot of check before starting and
>> >shutting down the daemon. Things like checking the root device, or
>> >tiggering LVM Volume Group activitation. They were easily done in shell.
>> >
>> >What would the systemd team recommend for it ?
>> >
> Could you elaborate a bit more, why those are needed?
> What is upstream doing about this?

The block storage has many components that work closely with one another.

Take an example, root fs on LVM on Multipath on iSCSI.

The flow for such a setup is to:
1) Start iSCSI and discover the LUNs
2) Detect and create mulitpath maps for matching LUNs in DM Multipath
3) Detect and Activate Volume Group out of the newly detected DM 
Multipath Physical Volumes
4) Mount the file system.

The same can be applied to the shutdown sequence. You want to have 
proper checks in place before initiating a shutdown of the service. One 
would argue that the service should not stop if it has active services.

Many of the services (mulitpath, iscsi, for example) have a 2 part 
component. One in the kernel and the other in userspace. The kernel 
space service will not terminate if any service is active. But the 
userspace is not so forgiving.

In open-iscsi, if you ask the daemon to shutdown, it will. If there are 
active sessions, the kernel component will not terminate the current 
sessions. But the userspace daemon will be shutdown. That means, that 
when there is the next state failure, open-iscsi will have no idea of 
determining that a LUN state has changed

Similar is the case with DM Multipath. The userspace DM Multipath daemon 
is responsible for polling and keeping an up-to-date status of the 
Device Mapper maps. If the userspace daemon is inactive, and underneath 
there is a fabric state change, there is no way to propagate that error 
to the upper layers.

These design issues, since they are part of the core storage stack, if 
triggered, leave you with a machine with no access to your root disk. 
Any process at that time, may get into a 'DI' process state or an 
immediate device failure. The only action then would be to hardware 
reset your machine.

This is why we do a lot of checks in the init scripts to warn the user.

Similar approaches were taken in RHEL (5 and 6) and SLES (10 and 11). 
I'm not sure what Red Hat or SUSE has chosen for their latest releases, 
as I don't work on those products any more.

My inclination is to ship both, the systemd service files and the init 
scripts, in their current form along with whatever limitations each may 
have, and let the user choose.

And by the way, can someone please shed some more light on Debian bug: 

Per the bug report, there is no systemd support in d-i. Which then means 
that I need to disable systemd support ?

Ritesh Raj Sarraf | http://people.debian.org/~rrs
Debian - The Universal Operating System

More information about the pkg-lvm-maintainers mailing list