** Description changed:

  [ Impact ]
  
-  * libvirtd crashs when users tries to hotplug a virtiofs into a VM
-    running in session mode (qemu:///session)
+  * libvirtd crashs when users tries to hotplug a virtiofs into a VM
+    running in session mode (qemu:///session)
  
  [ Test Plan ]
  
-  $ sudo apt install qemu-system-x86 libvirt-daemon-system libvirt-clients ovmf
-  $ sudo apt install virtiofsd uidmap
+  $ sudo apt install qemu-system-x86 \
+             libvirt-daemon-system \
+             libvirt-clients \
+             ovmf \
+             virtinst
  
-  $ cat vm.xml
+  $ sudo apt install virtiofsd uidmap
+ 
+  $ cat vm.xml
  
  <domain type='qemu'>
-   <name>test</name>
-   <memory unit='MiB'>2048</memory>
-   <vcpu>2</vcpu>
+   <name>test</name>
+   <memory unit='MiB'>2048</memory>
+   <vcpu>2</vcpu>
  
-   <os>
-     <type arch='x86_64' machine='q35'>hvm</type>
-   </os>
+   <os>
+     <type arch='x86_64' machine='q35'>hvm</type>
+   </os>
  
-   <cpu mode='custom' match='exact'>
-     <model fallback='allow'>qemu64</model>
-   </cpu>
+   <cpu mode='custom' match='exact'>
+     <model fallback='allow'>qemu64</model>
+   </cpu>
  
-   <features>
-     <acpi/>
-     <apic/>
-   </features>
+   <features>
+     <acpi/>
+     <apic/>
+   </features>
  
-   <!-- Force TCG (no KVM) -->
-   <devices>
-     <emulator>/usr/bin/qemu-system-x86_64</emulator>
+   <!-- Force TCG (no KVM) -->
+   <devices>
+     <emulator>/usr/bin/qemu-system-x86_64</emulator>
  
-     <controller type='pci' model='pcie-root'/>
-     <controller type='virtio-serial'/>
+     <controller type='pci' model='pcie-root'/>
+     <controller type='virtio-serial'/>
  
-     <console type='pty'/>
-   </devices>
+     <console type='pty'/>
+   </devices>
  
-   <!-- Required for virtio-fs -->
-   <memoryBacking>
-     <source type='memfd'/>
-     <access mode='shared'/>
-   </memoryBacking>
+   <!-- Required for virtio-fs -->
+   <memoryBacking>
+     <source type='memfd'/>
+     <access mode='shared'/>
+   </memoryBacking>
  </domain>
  
-  $ virsh -c qemu:///session define vm.xml
-  $ virsh -c qemu:///session start test
-  $ virt-xml -c qemu:///session  test --update --add-device --filesystem 
type=mount,accessmode=passthrough,driver.type=virtiofs,source.dir=/home/ubuntu/tmp,target.dir=mnt
+  $ virsh -c qemu:///session define vm.xml
+  $ virsh -c qemu:///session start test
+  $ virt-xml -c qemu:///session  test --update --add-device --filesystem 
type=mount,accessmode=passthrough,driver.type=virtiofs,source.dir=/home/ubuntu/tmp,target.dir=mnt
  
-  -> without the fix, libvirtd crashs
- 
+  -> without the fix, libvirtd crashs
  
  [ Where problems could occur ]
  
-  * This is one line fix that basically do a sanity check
-    however it enables the virtiofsd feature for session VMs, problems could  
-    occur during the use of this feature.
+  * This is one line fix that basically do a sanity check
+    however it enables the virtiofsd feature for session VMs, problems could
+    occur during the use of this feature.
  
  [ Other Info ]
  
-  * Upstream has the fix starting from version v10.2 so Questing onwards is ok
-    We just need to backport it to Noble and eventually to Jammy.
- 
+  * Upstream has the fix starting from version v10.2 so Questing onwards is ok
+    We just need to backport it to Noble and eventually to Jammy.
  
  ---- Original report ----
  
  Ubuntu 24.04.3 LTS
  libvirt-daemon 10.0.0-2ubuntu8.11
  
  When adding a filesystem to a running VM on the session connection,
  libvirtd crashes.
  
  Steps to reproduce:
  
  - Make a VM on the session connection. I believe the details don't
  matter.  Stop it.
  
  - Set the necessary "memory backing" parameters.
  
    $ virt-xml -c qemu:///session subVmTest1 --edit 1 --memorybacking
  access.mode=shared,source.type=memfd
  
  - Start the machine.
  
    $ virsh -c qemu:///session start subVmTest1
  
  - Add a filesystem with virt-xml.
  
    $ virt-xml -c qemu:///session subVmTest1 --update --add-device --filesystem 
type=mount,accessmode=passthrough,driver.type=virtiofs,source.dir=/mnt,target.dir=mnt
    ERROR    Error attempting device hotplug: End of file while reading data: 
Input/output error
  
  This will be in the journal:
  
    Jan 22 14:32:37 ubuntu systemd-coredump[2104]: [🡕] Process 1728
  (libvirtd) of user 1000 terminated abnormally without generating a
  coredump.
  
  - Repeating the attempt fails differently.
  
    $ virt-xml -c qemu:///session subVmTest1 --update --add-device --filesystem 
type=mount,accessmode=passthrough,driver.type=virtiofs,source.dir=/mnt,target.dir=mnt
    ERROR    Error attempting device hotplug: Cannot open log file: 
'/home/admin/.cache/libvirt/qemu/log/subVmTest1-fs0-virtiofsd.log': Device or 
resource busy
  
  The content of that file is:
  
  [2026-01-22T14:39:20Z WARN  virtiofsd] Use of deprecated option format '-o': 
Please specify options without it (e.g., '--cache auto' instead of '-o 
cache=auto')
  [2026-01-22T14:39:20Z WARN  virtiofsd::sandbox] Couldn't set the process uid 
as root: -1
  [2026-01-22T14:39:20Z WARN  virtiofsd::sandbox] Couldn't set the process gid 
as root: -1
  [2026-01-22T14:39:20Z INFO  virtiofsd] Waiting for vhost-user socket 
connection...

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2138902

Title:
  session libvirtd crashes when hot adding filesystems

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


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to