[systemd-devel] udev 215 creates inactive MD devices upon stopping them

Kay Sievers kay at vrfy.org
Thu Jul 24 14:53:30 PDT 2014


On Thu, Jul 24, 2014 at 5:48 PM, Sebastian Parschauer
<sebastian.riemer at profitbricks.com> wrote:

> as discussed on linux-raid, please fix the bug that udev 215 creates
> inactive MD devices upon stopping them.
>
> Reference: http://www.spinics.net/lists/raid/msg46676.html
> Reported-by: Francis Moreau <francis.moro at gmail.com>
>
> An open() call to /dev/mdX after creating it with mknod is enough to
> create such inactive MD device.
>
> According to Artur the issue is caused by this change in udev:
>
>> commit 3ebdb81ef088afd3b4c72b516beb5610f8c93a0d
>> Author: Kay Sievers <kay at vrfy.org>
>> Date:   Sun Apr 13 19:54:27 2014 -0700
>>
>>      udev: serialize/synchronize block device event handling with file locks
>>
>> http://cgit.freedesktop.org/systemd/systemd/commit/?id=3ebdb81ef088afd3b4c72b516beb5610f8c93a0d
>>
>> It seems that they have already disabled this for dm for some reason,
>> but not for md:
>>
>> commit e918a1b5a94f270186dca59156354acd2a596494
>> Author: Kay Sievers <kay at vrfy.org>
>> Date:   Tue Jun 3 16:49:38 2014 +0200
>>
>>     udev: exclude device-mapper from block device ownership event locking
>>
>> http://cgit.freedesktop.org/systemd/systemd/commit/?id=e918a1b5a94f270186dca59156354acd2a596494

MD devices are excluded now from the locking logic, like dm devices already are.

Instantiation of devices at open() is incompatible with udev's locking
logic. That feature is not useful on most systems today, mknod()
should never be done by any tools, only by the kernel itself. It
should probably be disabled by default.

(The locking scheme is used to support partitioning programs, to make
sure udev will not interfere with the partitioning tool while it
creates/removes partitions. As long as an exclusive lock is held on
the disk device node, all udev events are suppressed, the close() of
the disk which war opened for writing will re-read the partition table
and synthesize all suppressed udev events for the partitions again.)

Thanks,
Kay


More information about the systemd-devel mailing list