duplicate ARRAY lines in mdadm.conf generated by geninitrd, system unbootable

Bug #1902714 reported by rot13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PLD Linux
New
Undecided
Unassigned

Bug Description

My system became unbootable after doing full dist-upgrade today.

Video: http://pps.siedziba.pl/video-2020-11-03_09-21-10.mp4

The problem is caused by duplicate ARRAY lines in mdadm.conf generated by geninitrd.

This is how it looks:

DEVICE partitions containers
DEVICE /dev/sda
DEVICE /dev/sda1
DEVICE /dev/sda2
DEVICE /dev/sdb
DEVICE /dev/sdc
DEVICE /dev/sdc1
DEVICE /dev/sdc2
DEVICE /dev/sda2 /dev/sdc2
ARRAY /dev/md0 metadata=1.2 name=zlom:0 UUID=01ffbdd5:f8801ed6:c5363602:3c9cad7d
DEVICE /dev/sda2 /dev/sdc2
ARRAY /dev/md0 metadata=1.2 name=zlom:0 UUID=01ffbdd5:f8801ed6:c5363602:3c9cad7d

After removing one of these ARRAY lines the system becomes bootable again.

Relevant packages:
geninitrd-12787-7.noarch
kernel-5.9.1-2.x86_64
mdadm-4.1-1.x86_64

Verbose output from geninitrd:

geninitrd: # geninitrd 12787
geninitrd: find_tool: found /usr/lib64/initrd/busybox
geninitrd: find_tool: found /sbin/cryptsetup
geninitrd: find_tool: found /sbin/dmraid
geninitrd: find_tool: found /sbin/lvm
geninitrd: find_tool: found /sbin/mdadm
geninitrd: find_tool: found /usr/lib64/initrd/blkid
geninitrd: find_tool: found /sbin/udevd
geninitrd: find_tool: found /bin/udevadm
geninitrd: find_tool: found /usr/lib64/initrd/resume
geninitrd: Finding USB keyboard modules
geninitrd: Finding SATA modules (class=0x0106)
geninitrd: Finding modules for device path /dev/volumes/swap
geninitrd: is_luks: /dev/volumes/swap is not device mapper name
geninitrd: LVM: /dev/volumes/swap is LVM node
File descriptor 4 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15524: /bin/sh
File descriptor 5 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15524: /bin/sh
File descriptor 9 (pipe:[1467581]) leaked on lvm invocation. Parent PID 15524: /bin/sh
geninitrd: LVM VG for /dev/volumes/swap: volumes
File descriptor 4 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15531: /bin/sh
File descriptor 5 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15531: /bin/sh
File descriptor 9 (pipe:[1467581]) leaked on lvm invocation. Parent PID 15531: /bin/sh
geninitrd: LVM PV for volumes: /dev/md0
geninitrd: Finding modules for device path /dev/md0
geninitrd: is_luks: /dev/md0 is not device mapper name
geninitrd: Finding RAID details using mdadm for rootdev=/dev/md0
geninitrd: md: found rootdev=/dev/md0 on device /dev/md0 with devices list /dev/sda2 /dev/sdc2
geninitrd: Finding modules for device path /dev/sda2
geninitrd: is_luks: /dev/sda2 is not device mapper name
geninitrd: Finding SCSI modules using scsi_hostadapter
geninitrd: Finding modules for device path /dev/sdc2
geninitrd: is_luks: /dev/sdc2 is not device mapper name
geninitrd: Finding SCSI modules using scsi_hostadapter
geninitrd: LVM v2 enabled
geninitrd: suspend device is on LVM
geninitrd: Using /dev/volumes/root1 as device for rootfs
geninitrd: Finding modules for device path /dev/volumes/root1
geninitrd: is_luks: /dev/volumes/root1 is not device mapper name
geninitrd: LVM: /dev/volumes/root1 is LVM node
File descriptor 4 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15636: /bin/sh
File descriptor 5 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15636: /bin/sh
File descriptor 9 (pipe:[1467581]) leaked on lvm invocation. Parent PID 15636: /bin/sh
geninitrd: LVM VG for /dev/volumes/root1: volumes
File descriptor 4 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15646: /bin/sh
File descriptor 5 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15646: /bin/sh
File descriptor 9 (pipe:[1467581]) leaked on lvm invocation. Parent PID 15646: /bin/sh
geninitrd: LVM PV for volumes: /dev/md0
geninitrd: Finding modules for device path /dev/md0
geninitrd: is_luks: /dev/md0 is not device mapper name
geninitrd: Finding RAID details using mdadm for rootdev=/dev/md0
geninitrd: md: found rootdev=/dev/md0 on device /dev/md0 with devices list /dev/sda2 /dev/sdc2
geninitrd: Finding modules for device path /dev/sda2
geninitrd: is_luks: /dev/sda2 is not device mapper name
geninitrd: Finding SCSI modules using scsi_hostadapter
geninitrd: Finding modules for device path /dev/sdc2
geninitrd: is_luks: /dev/sdc2 is not device mapper name
geninitrd: Finding SCSI modules using scsi_hostadapter
geninitrd: LVM v2 enabled
geninitrd: Building initrd...
geninitrd: + cp /usr/lib64/initrd/busybox DESTDIR/bin/busybox
 not a dynamic executable
geninitrd: Loading font /lib/kbd/consolefonts/lat2u-16.psfu.gz
geninitrd: + cp /lib/geninitrd/functions.initrd DESTDIR/lib/geninitrd/functions.initrd
geninitrd: Loading module [scsi_mod] with options [scan=sync ]
geninitrd: Loading module [libata]
geninitrd: Loading module [ata_piix]
geninitrd: Loading module [libahci]
geninitrd: Loading module [ahci]
geninitrd: Loading module [ata_generic]
geninitrd: Loading module [md-mod]
geninitrd: Loading module [raid1]
geninitrd: Loading module [t10-pi]
geninitrd: Loading module [sd_mod]
geninitrd: Loading module [dm-mod]
geninitrd: Loading module [jbd2]
geninitrd: Loading module [mbcache]
geninitrd: Loading module [crc16]
geninitrd: Loading module [crc32c-intel]
geninitrd: Loading module [crc32c_generic]
geninitrd: Loading module [libcrc32c]
geninitrd: Loading module [ext4]
geninitrd: Loading module [hid]
geninitrd: Loading module [usbcore]
geninitrd: Loading module [usbhid]
geninitrd: Loading module [ehci-hcd]
geninitrd: Loading module [uhci-hcd]
geninitrd: Loading module [ohci-hcd]
geninitrd: Loading module [dm-log]
geninitrd: Loading module [dm-region-hash]
geninitrd: Loading module [dm-mirror]
geninitrd: Loading module [dm-bufio]
geninitrd: Loading module [dm-snapshot]
geninitrd: Adding BLKID support to initrd
geninitrd: + cp /usr/lib64/initrd/blkid DESTDIR/sbin/blkid
 not a dynamic executable
geninitrd: Setting up mdadm...
geninitrd: + cp /sbin/mdadm DESTDIR/sbin/mdadm
geninitrd: + cp /lib64/ld-linux-x86-64.so.2 DESTDIR/lib64
geninitrd: + cp /lib64/libc.so.6 DESTDIR/lib64
geninitrd: + cp /lib64/libdl.so.2 DESTDIR/lib64
geninitrd: Setting up array (/dev/md0 = /dev/sda2 /dev/sdc2)
geninitrd: + cp /dev/sda2 DESTDIR/dev/sda2
geninitrd: + cp /dev/sdc2 DESTDIR/dev/sdc2
geninitrd: + cp /dev/md0 DESTDIR/dev/md0
geninitrd: + cp /dev/sda DESTDIR/dev/sda
geninitrd: + cp /dev/sda1 DESTDIR/dev/sda1
geninitrd: + cp /dev/sdb DESTDIR/dev/sdb
geninitrd: + cp /dev/sdc DESTDIR/dev/sdc
geninitrd: + cp /dev/sdc1 DESTDIR/dev/sdc1
geninitrd: Setting up array (/dev/md0 = /dev/sda2 /dev/sdc2)
geninitrd: Adding LVM support to initrd
geninitrd: + cp /sbin/lvm DESTDIR/bin/lvm.static
geninitrd: + cp /lib64/libaio.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/libblkid.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/libcap.so.2 DESTDIR/lib64
geninitrd: + cp /lib64/libdevmapper-event.so.1.02 DESTDIR/lib64
geninitrd: + cp /lib64/libdevmapper.so.1.02 DESTDIR/lib64
geninitrd: + cp /lib64/libm.so.6 DESTDIR/lib64
geninitrd: + cp /lib64/libpcre.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/libpthread.so.0 DESTDIR/lib64
geninitrd: + cp /lib64/libgcc_s.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/librt.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/libselinux.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/libudev.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/libgcrypt.so.20 DESTDIR/lib64
geninitrd: + cp /lib64/libgpg-error.so.0 DESTDIR/lib64
geninitrd: + cp /lib64/liblz4.so.1 DESTDIR/lib64
geninitrd: + cp /lib64/liblzma.so.5 DESTDIR/lib64
geninitrd: + cp /lib64/libncursesw.so.6 DESTDIR/lib64
geninitrd: + cp /lib64/libreadline.so.8 DESTDIR/lib64
geninitrd: + cp /lib64/libsystemd.so.0 DESTDIR/lib64
geninitrd: + cp /usr/lib64/libzstd.so.1 DESTDIR/usr/lib64
File descriptor 4 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15334: /bin/sh
File descriptor 5 (pipe:[1467578]) leaked on lvm invocation. Parent PID 15334: /bin/sh
File descriptor 9 (pipe:[1467581]) leaked on lvm invocation. Parent PID 15334: /bin/sh
geninitrd: Adding BLKID support to initrd
geninitrd: + cp /usr/lib64/initrd/blkid DESTDIR/sbin/blkid
 not a dynamic executable
geninitrd: Adding rootfs finding based on kernel cmdline root= option support.
geninitrd: Setting up suspend...
geninitrd: + cp /dev/volumes/swap DESTDIR/dev/volumes/swap
geninitrd: + cp /etc/suspend.conf DESTDIR/etc/suspend.conf
geninitrd: + cp /usr/lib64/initrd/resume DESTDIR/bin/resume
 not a dynamic executable
geninitrd: + cp /dev/volumes/root1 DESTDIR/dev/volumes/root1
geninitrd: image size: 20480 KiB (/root/tmp/initrd.cpRCdd)
geninitrd: Creating initramfs image /root/tmp/initrd.img-2KnXup
geninitrd: finding compressor: gzip (via gzip)
geninitrd: Compressing /tmp/initrd-5.9.1-2.gz with gzip

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.