Public bug reported:

Repro:
# Prep a backing disk
$ sudo fallocate -l 100M /tmp/zfsbase1
$ sudo fallocate -l 100M /tmp/zfsbase2
$ sudo zpool create zfsmirrortest mirror /tmp/zfsbase1 /tmp/zfsbase2
$ sudo zfs create -V 20M zfsmirrortest/vol1
$ cat > disk-zfs.xml << EOF
      <disk type='block' device='disk'>
         <driver name='qemu' type='raw'/>
         <source dev='/dev/zvol/zfsmirrortest/vol1'/>
         <target dev='vdc' bus='virtio'/>
      </disk>
EOF
# Get a guest
$ uvt-kvm create --disk 5  --password=ubuntu h release=hirsute arch=s390x 
label=daily
$ uvt-kvm wait h release=hirsute arch=s390x label=daily
# Attach and Detach disk
$ virsh attach-device h disk-zfs.xml
Device attached successfully
$ virsh detach-device h disk-zfs.xml
Device detached successfully


>From libvirts POV it is gone at this point
$ virsh domblklist h
 Target   Source
------------------------------------------------------------------
 vda      /var/lib/uvtool/libvirt/images/hirsute-2nd-zfs.qcow
 vdb      /var/lib/uvtool/libvirt/images/hirsute-2nd-zfs-ds.qcow


But the guest thinks still it is present
$ uvt-kvm ssh --insecure hirsute-2nd-zfs lsblk
  ...
  vdc    252:32   0   20M  0 disk

This even remains a while after (not a race).

Any access to it in the guest will hang (as you'd expect of a non-existing 
blockdev)
4     0    1758    1739  20   0  12140  4800 -      S+   pts/0      0:00  |     
      \_ sudo mkfs.ext4 /dev/vdc
4     0    1759    1758  20   0   6924  1044 -      D+   pts/0      0:00  |     
          \_ mkfs.ext4 /dev/vdc


The result above was originally found with hirsute-guest@hirsute-host on s390x

I do NOT see the same with  groovy-guest@hirsute-host on s390x
I DO see the same with hirsute-guest@groovy-host on s390x
  => Guest version dependent not Host/Hipervisor dependent
I DO see the same with ZFS disks AND LVM disks being added&removed
  => not type dependent
I do NOT see the same on x86.
  => Arch dependent ??

... the evidence slowly points towards an issue in the guest, damn we are so
close to release - but non-fully detaching disks are critical in my POV :-/

Filing this as-is for awareness, but certainly this will need more debugging.
Unsure where this is going to eventually I'll now file it for 
kernel/udev/systemd.
If there are any known issues/components that are related let me know please!

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: Incomplete

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: udev (Ubuntu)
     Importance: Critical
         Status: New


** Tags: hirsute

** Also affects: linux (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: systemd (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: udev (Ubuntu)
   Importance: Undecided => Critical

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1925211

Title:
  Hot-unplug of disks leaves broken block devices around in Hirsute

Status in linux package in Ubuntu:
  Incomplete
Status in systemd package in Ubuntu:
  New
Status in udev package in Ubuntu:
  New

Bug description:
  Repro:
  # Prep a backing disk
  $ sudo fallocate -l 100M /tmp/zfsbase1
  $ sudo fallocate -l 100M /tmp/zfsbase2
  $ sudo zpool create zfsmirrortest mirror /tmp/zfsbase1 /tmp/zfsbase2
  $ sudo zfs create -V 20M zfsmirrortest/vol1
  $ cat > disk-zfs.xml << EOF
        <disk type='block' device='disk'>
           <driver name='qemu' type='raw'/>
           <source dev='/dev/zvol/zfsmirrortest/vol1'/>
           <target dev='vdc' bus='virtio'/>
        </disk>
  EOF
  # Get a guest
  $ uvt-kvm create --disk 5  --password=ubuntu h release=hirsute arch=s390x 
label=daily
  $ uvt-kvm wait h release=hirsute arch=s390x label=daily
  # Attach and Detach disk
  $ virsh attach-device h disk-zfs.xml
  Device attached successfully
  $ virsh detach-device h disk-zfs.xml
  Device detached successfully

  
  From libvirts POV it is gone at this point
  $ virsh domblklist h
   Target   Source
  ------------------------------------------------------------------
   vda      /var/lib/uvtool/libvirt/images/hirsute-2nd-zfs.qcow
   vdb      /var/lib/uvtool/libvirt/images/hirsute-2nd-zfs-ds.qcow

  
  But the guest thinks still it is present
  $ uvt-kvm ssh --insecure hirsute-2nd-zfs lsblk
    ...
    vdc    252:32   0   20M  0 disk

  This even remains a while after (not a race).

  Any access to it in the guest will hang (as you'd expect of a non-existing 
blockdev)
  4     0    1758    1739  20   0  12140  4800 -      S+   pts/0      0:00  |   
        \_ sudo mkfs.ext4 /dev/vdc
  4     0    1759    1758  20   0   6924  1044 -      D+   pts/0      0:00  |   
            \_ mkfs.ext4 /dev/vdc

  
  The result above was originally found with hirsute-guest@hirsute-host on s390x

  I do NOT see the same with  groovy-guest@hirsute-host on s390x
  I DO see the same with hirsute-guest@groovy-host on s390x
    => Guest version dependent not Host/Hipervisor dependent
  I DO see the same with ZFS disks AND LVM disks being added&removed
    => not type dependent
  I do NOT see the same on x86.
    => Arch dependent ??

  ... the evidence slowly points towards an issue in the guest, damn we are so
  close to release - but non-fully detaching disks are critical in my POV :-/

  Filing this as-is for awareness, but certainly this will need more debugging.
  Unsure where this is going to eventually I'll now file it for 
kernel/udev/systemd.
  If there are any known issues/components that are related let me know please!

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1925211/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to