[dm-devel] Possible bug in mirror target

John Stoffel john at stoffel.org
Sun Feb 10 21:58:06 UTC 2019


>>>>> "Zdenek" == Zdenek Kabelac <zkabelac at redhat.com> writes:

Zdenek> Dne 05. 02. 19 v 1:47 Drew Hastings napsal(a):
>> Hi,
>> 
>> I'm assuming all user space code is expected to use the handle_errors feature, 
>> so this isn't that big of a deal. I'm also using 4.19.13, which I think is 
>> more recent than the latest update to dm-raid1.c
>> 
>> That said, there may be a bug that causes the entire mirror to crash if there 
>> is an error on the first leg of the mirror, but not on the 2nd leg.
>> 
>> Works fine if you do cause IO errors on the 2nd leg:
>> 
>> root at kernel-dev:~# dmsetup create zerodev --table "0 1073741824 zero"
>> root at kernel-dev:~# dmsetup create errordev --table "0 1073741824 error"
>> 
>> 
>> root at kernel-dev:~# dmsetup create mirror-table --table "0 1073741824 mirror 
>> core 2 524288 nosync 2 /dev/mapper/zerodev 0 /dev/mapper/errordev 0 0"

Zdenek> There are 2 operational modes for old dm mirror target.
Zdenek> One requires to handle errors externally. Please check i.e. the following 
Zdenek> guide for mirror target:

Zdenek> https://wiki.gentoo.org/wiki/Device-mapper

Zdenek> Lvm2 is using 'dmeventd' to service this error handling
Zdenek> (i.e. dropping the mirror leg or allocating replacement one).

Is it time to remove the dm-mirror target then?  Or to deprecate it?
Or to just silently replace it with something that does the right
thing when errors happen?  I can't think of why *anyone* would want to
use the dm-mirror target as it now seems to work.

John




More information about the dm-devel mailing list