This patchset include a couple of miscellaneous cleanups, but is mostly in response to issues brought up in https://github.com/opensvc/multipath-tools/issues/100 It adds auto restarting to the multipathd.service unit file. I'm fairly conflicted about the correct limits to be placed on these restarts, so if anyone has strong opinions and a good argument, I'm more than willing to change them. The bulk of the changes deal with how multipath handles devices without any table. Multipath was supposed to delete these if they were left behind after a failed device creation, but that code was broken. However devices aren't typically left behind after failed creates, so it didn't matter. A bigger issue is that multipathd and multipath could fail if tableless devices were present. With this patchset, they will simply ignore tableless devices that don't have a multipath prefixed DM UUID. The last patch is a RFC patch that changes the behavior for tableless devices that do have a multipath prefixed DM UUID. It makes multipath remove these devices on the grounds that they are likely failed creates. However, looking at the libdevmapper code, I'm not sure that we actually want to do this. When a DM_DEVICE_CREATE task is run, it will first create a tableless device, and then immediately load the table and resume the device. So it's possible any that tableless devices which multipath sees are actually in the process of getting created. I left the patch as part of the set, but I'm not sure that removing the devices is the right answer here. I haven't ever seen any tableless multipath devices lying around (and I couldn't force any to get created when I tried). Unless other people have seen these, then I don't think the final patch of this set should go in. Benjamin Marzinski (8): multipathd: print an error when failing to connect to multipathd libmultipath: check DM UUID earlier in libmp_mapinfo__ libmultipath: Don't fail dm_get_maps for DMP_NOT_FOUND multipathd.service: restart multipathd on failure libmultipath: use MAPINFO_CHECK_UUID in dm_get_multipath libmultipath: signal multipath UUID device with no table libmultipath: fix removing device after failed creation libmultipath: remove devices with no table and multipath DM UUID libmultipath/devmapper.c | 56 +++++++++++++++++++++++--------- libmultipath/devmapper.h | 6 ++-- multipathd/multipathd.service.in | 3 ++ multipathd/uxclnt.c | 4 ++- 4 files changed, 51 insertions(+), 18 deletions(-) -- 2.46.2