@Alasdair It's buried in the description:
"We were attempting variants of 'while true; do sudo multipath -F; sudo multipath -v4 ; done' to create a set of udev add/remove events and noticed that shortly after starting, no output appeared within the 'udevadm monitor' command." So it appears that multipath is sending a DM ioctl to create a map with the same wwid, that "should" have been completely removed at the exit of 'multipath -F'. There's no dmsetup command executing out of band unless there's some udev rule misbehaving. The udev rules managing dmsetup are /lib/udev/rules.d/55-dm.rules I'm not familiar with the cookie feature you mentioned, but we appear to have some of the capability here. I haven't compared it to upstream yet. "55-dm.rules" # Decode udev control flags and set environment variables appropriately. # These flags are encoded in DM_COOKIE variable that was introduced in # kernel version 2.6.31. Therefore, we can use this feature with # kernels >= 2.6.31 only. ENV{DM_COOKIE}=="?*", IMPORT{program}="/sbin/dmsetup udevflags $env{DM_COOKIE}" ENV{DM_COOKIE}=="?*", RUN+="/sbin/dmsetup udevcomplete $env{DM_COOKIE}" and compared to our packaged source in precise: <12:29:34>multipath-tools-0.4.9$ grep -R cookie . ./kpartx/devmapper.c:dm_simplecmd (int task, const char *name, int no_flush, uint32_t *cookie) { ./kpartx/devmapper.c: if (udev_wait_flag && !dm_task_set_cookie(dmt, cookie, 0)) ./kpartx/devmapper.c: mode_t mode, uid_t uid, gid_t gid, uint32_t *cookie) { ./kpartx/devmapper.c: if (task == DM_DEVICE_CREATE && !dm_task_set_cookie(dmt, cookie, 0)) ./kpartx/kpartx.c: uint32_t cookie = 0; ./kpartx/kpartx.c: 0, &cookie)) { ./kpartx/kpartx.c: buf.st_gid, &cookie)) { ./kpartx/kpartx.c: 1, &cookie)) { ./kpartx/kpartx.c: &cookie); ./kpartx/kpartx.c: &cookie); ./kpartx/kpartx.c: dm_udev_wait(cookie); ./libmultipath/config.h: uint32_t cookie; ./libmultipath/devmapper.c: if (udev_wait_flag && !dm_task_set_cookie(dmt, &conf->cookie, 0)) ./libmultipath/devmapper.c: !dm_task_set_cookie(dmt, &conf->cookie, 0)) ./libmultipath/devmapper.c: if (!dm_task_set_cookie(dmt, &conf->cookie, 0)) ./multipath/main.c: dm_udev_wait(conf->cookie); This cookie mechanism is news to me, I'll take a closer look, thanks. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/585027 Title: Race condition with dmsetup causes 'map already present' messages To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/585027/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs