libvirtd crashes when creating network interface pools in 6.0.0-0ubuntu8.13

Bug #1943481 reported by Paul Saab
24
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libvirt (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
Critical
Matthew Ruffell

Bug Description

[Impact]

A regression was introduced in libvirt 6.0.0-0ubuntu8.13 for Focal, that affects users who use SR-IOV to pass through VF devices to KVM guests.

The problem was introduced in the recent lp-1892132-Add-phys_port_name-support-on-virPCIGetNetName.patch patch, which changes how virPCIGetNetName() fetches the name of the underlying VF device, so it can be used to send netlink commands.

There is a fallback case where we record the name of the device at the beginning, and if we fail all other lookups, we simply return the beginning name.

In libvirt 6.0.0-0ubuntu8.13, a line to drop the reference to firstEntryName was dropped incorrectly:

- if (firstEntryName) {
- *netname = firstEntryName;
- firstEntryName = NULL;
- ret = 0;
+ if (firstEntryName) {
+ *netname = firstEntryName;
+ ret = 0;

This results in a double free, as netname and firstEntryName are freed, and results in the gdb trace:

#1 0x00007f40e5d1c859 in __GI_abort () at abort.c:79
#2 0x00007f40e5d873ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f40e5eb1285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007f40e5d8f47c in malloc_printerr (str=str@entry=0x7f40e5eb35d0 "free(): double free detected in tcache 2") at malloc.c:5347
#4 0x00007f40e5d910ed in _int_free (av=0x7f40c8000020, p=0x7f40c80079e0, have_lock=0) at malloc.c:4201
#5 0x00007f40e61a9a4f in virFree (ptrptr=0x7f40c8003b60) at ../../../src/util/viralloc.c:348
#6 0x00007f40dd0cf8b1 in networkCreateInterfacePool (netdef=0x7f40840187f0) at ../../../src/network/bridge_driver.c:2849
#7 0x00007f40dd0d799c in networkStartNetworkExternal (obj=0x7f408400f720) at ../../../src/network/bridge_driver.c:2938
#8 networkStartNetwork (driver=driver@entry=0x7f408400a7a0, obj=0x7f408400f720) at ../../../src/network/bridge_driver.c:2938
#9 0x00007f40dd0d854d in networkCreate (net=0x7f40c8000c60) at ../../../src/network/bridge_driver.c:4013
#10 0x00007f40e63fac3f in virNetworkCreate (network=network@entry=0x7f40c8000c60) at ../../../src/libvirt-network.c:585
#11 0x0000560240e255d1 in remoteDispatchNetworkCreate (server=0x560240ea4280, msg=0x560240ee8200, args=0x7f40c8000c40, rerr=0x7f40e00ec9a0, client=<optimized out>) at ./remote/remote_daemon_dispatch_stubs.h:13570
#12 remoteDispatchNetworkCreateHelper (server=0x560240ea4280, client=<optimized out>, msg=0x560240ee8200, rerr=0x7f40e00ec9a0, args=0x7f40c8000c40, ret=0x0) at ./remote/remote_daemon_dispatch_stubs.h:13549
#13 0x00007f40e630c970 in virNetServerProgramDispatchCall (msg=0x560240ee8200, client=0x560240eea270, server=0x560240ea4280, prog=0x560240ee1520) at ../../../src/rpc/virnetserverprogram.c:430
#14 virNetServerProgramDispatch (prog=0x560240ee1520, server=server@entry=0x560240ea4280, client=0x560240eea270, msg=0x560240ee8200) at ../../../src/rpc/virnetserverprogram.c:302
#15 0x00007f40e6311c2c in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>, srv=0x560240ea4280) at ../../../src/rpc/virnetserver.c:136
#16 virNetServerHandleJob (jobOpaque=<optimized out>, opaque=0x560240ea4280) at ../../../src/rpc/virnetserver.c:153
#17 0x00007f40e62301af in virThreadPoolWorker (opaque=opaque@entry=0x560240e885f0) at ../../../src/util/virthreadpool.c:163
#18 0x00007f40e622f51c in virThreadHelper (data=<optimized out>) at ../../../src/util/virthread.c:196
#19 0x00007f40e5ef2609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007f40e5e19293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

The fix is to either make sure that firstEntryName = NULL; like before, or we replace with the upstream call to g_steal_pointer(&firstEntryName); which does the same.

static inline gpointer
g_steal_pointer (gpointer pp)
{
  gpointer *ptr = (gpointer *) pp;
  gpointer ref;
  ref = *ptr;
  *ptr = NULL;
  return ref;
}

[Testcase]

Deploy a machine with a NIC that supports SR-IOV. Note, only particular NICs will reach the end of virPCIGetNetName().

Install KVM stack:

$ sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Edit /etc/default/grub and add "intel_iommu=on" to the kernel command line.

$ sudo update-grub
$ sudo reboot

Create the VFs via the sysfs node:

$ sudo -s
# cat /sys/class/net/eno49/device/sriov_totalvfs
63
# echo '7' > /sys/class/net/eno49/device/sriov_numvfs

Next we need to define a virsh network, save the following in /tmp/passthrough.xml, changing "eno49" to your network interface.

 <network>
   <name>passthrough</name>
   <forward mode='hostdev' managed='yes'>
     <pf dev='eno49'/>
   </forward>
 </network>

$ virsh net-define /tmp/passthrough.xml
$ virsh net-autostart passthrough
$ virsh net-start passthrough

We need to make an apparmor rule to enable vfio of our VF device.

Edit /etc/apparmor.d/local/abstractions/libvirt-qemu

Add the line:

/dev/vfio/* rw,

Then restart apparmor:

$ sudo systemctl restart apparmor.service

Next make a Focal VM:

$ sudo apt install uvtool-libvirt
$ ssh-keygen
$ uvt-simplestreams-libvirt sync release=focal arch=amd64
$ uvt-kvm create --cpu 4 --memory 4096 --disk 8 [ --password insecure ] focal-vm release=focal arch=amd64
$ uvt-kvm wait focal-vm

$ uvt-kvm ssh focal-vm # for ssh, key-based authentication.
$ virsh console focal-vm # for serial console, user ubuntu, password above.

Next, edit the virsh xml

$ virsh shutdown focal-vm
$ virsh edit focal-vm

Add:

  <interface type='network'>
    <source network='passthrough'>
  </interface>

Save and reboot the VM.

$ virsh start focal-vm

[Where problems could occur]

If a regression were to occur, it would affect users who use SR-IOV to pass through VF devices into KVM guests, which is a large amount of our enterprise users.

The fix is a single line change, and simply replaces what was existing, but was mistakenly removed. The changes should be safe.

Revision history for this message
Paul Saab (ps-mu) wrote :

This is an updated lp-1892132-Add-phys_port_name-support-on-virPCIGetNetName.patch that uses g_steal_pointer(&firstEntryName); when assigning *netname.

Revision history for this message
Dan Streetman (ddstreet) wrote :
Download full text (7.2 KiB)

Yeah, looking at the patch it's clear the NULL setting was accidentally (?) left off:

- if (physPortID) {
- if (firstEntryName) {
- /* we didn't match the provided phys_port_id, but this
- * is probably because phys_port_id isn't implemented
- * for this NIC driver, so just return the first
- * (probably only) netname we found.
- */
- *netname = firstEntryName;
- firstEntryName = NULL;
- ret = 0;
- } else {
- virReportError(VIR_ERR_INTERNAL_ERROR, ...

Read more...

tags: added: regression-update
Changed in libvirt (Ubuntu):
importance: Undecided → Critical
Changed in libvirt (Ubuntu Focal):
importance: Undecided → Critical
status: New → In Progress
Revision history for this message
Matthew Ruffell (mruffell) wrote :

Okay, this is what appears to have happened.

During the backport of:

commit 5b1c525b1f3608156884aed0dc5e925306c1e260
Author: Dmytro Linkin <email address hidden>
Date: Thu Jan 21 14:15:22 2021 +0200
Subject: util: Add phys_port_name support on virPCIGetNetName
Link: https://github.com/libvirt/libvirt/commit/5b1c525b1f3608156884aed0dc5e925306c1e260

Another refactor commit seems to have been squashed together and included:

commit 77401d549c52ba2b11c2132a8ca41d73a4130c85
Author: Laine Stump <email address hidden>
Date: Mon Oct 26 22:04:31 2020 -0400
Subject: util: refactor function to simplify and remove label
Link: https://github.com/libvirt/libvirt/commit/77401d549c52ba2b11c2132a8ca41d73a4130c85

This refactor commit directly depends on DIR* being changed to g_autoptr in the below commit:

commit c0ae4919e386cda6e21d3ba022ee187e8b09793b
Author: Laine Stump <email address hidden>
Date: Sun Oct 25 17:50:51 2020 -0400
Subject: change DIR* int g_autoptr(DIR) where appropriate
Link: https://github.com/libvirt/libvirt/commit/c0ae4919e386cda6e21d3ba022ee187e8b09793b#diff-d44ea20881ddbf7bd7b9e4fa9d2a6454812e5109e94160e5f97e2d40ff93a9ca

I think squashing "util: refactor function to simplify and remove label" into "util: Add phys_port_name support on virPCIGetNetName" was probably a bad idea here, without also taking on "change DIR* int g_autoptr(DIR) where appropriate".

I'll try come up with a slightly more sensible backport, possibly keeping the initial implementation.

Changed in libvirt (Ubuntu Focal):
assignee: nobody → Matthew Ruffell (mruffell)
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "lp-1892132-Add-phys_port_name-support-on-virPCIGetNetName.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Revision history for this message
Matthew Ruffell (mruffell) wrote :

Okay, after reviewing the various patches and backports, Frode's backport was correct, it was just missing the "firstEntryName = NULL;" line.

Attached is a debdiff with the "firstEntryName = NULL;" line restored. Only Focal is affected, Hirsute and Impish are working correctly.

I have a test package building in a ppa, will make a testcase now.

Revision history for this message
Matthew Ruffell (mruffell) wrote :

Test packages are now available in:

https://launchpad.net/~mruffell/+archive/ubuntu/lp1943481-test

Please note these test packages are NOT SUPPORTED by Canonical, and are for TEST PURPOSES ONLY. ONLY install in a dedicated test environment.

Instructions to Install (on a Focal system):
1) sudo add-apt-repository ppa:mruffell/lp1943481-test
2) sudo apt update
3) sudo apt install libvirt-daemon-system libvirt-clients
4) sudo reboot
5) sudo apt-cache policy libvirt-daemon-system
Installed: 6.0.0-0ubuntu8.13+lp1943481v20210914b2

Revision history for this message
Paul Saab (ps-mu) wrote : Re: [Bug 1943481] Re: libvirtd crashes when creating network interface pools in 6.0.0-0ubuntu8.13
Download full text (5.1 KiB)

Patch applied, installed and rebooted. Guest VM comes up now.
Thank you!

libvirt-daemon-system:
  Installed: 6.0.0-0ubuntu8.13+lp1943481v20210914b2
  Candidate: 6.0.0-0ubuntu8.13+lp1943481v20210914b2
  Version table:
 *** 6.0.0-0ubuntu8.13+lp1943481v20210914b2 500
        500 http://ppa.launchpad.net/mruffell/lp1943481-test/ubuntu
focal/main amd64 Packages
        100 /var/lib/dpkg/status
     6.0.0-0ubuntu8.13 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64
Packages
     6.0.0-0ubuntu8.3 500
        500 http://us.archive.ubuntu.com/ubuntu focal-security/main amd64
Packages
     6.0.0-0ubuntu8 500
        500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

On Mon, Sep 13, 2021 at 8:05 PM Matthew Ruffell <email address hidden>
wrote:

> Test packages are now available in:
>
> https://launchpad.net/~mruffell/+archive/ubuntu/lp1943481-test
>
> Please note these test packages are NOT SUPPORTED by Canonical, and are
> for TEST PURPOSES ONLY. ONLY install in a dedicated test environment.
>
> Instructions to Install (on a Focal system):
> 1) sudo add-apt-repository ppa:mruffell/lp1943481-test
> 2) sudo apt update
> 3) sudo apt install libvirt-daemon-system libvirt-clients
> 4) sudo reboot
> 5) sudo apt-cache policy libvirt-daemon-system
> Installed: 6.0.0-0ubuntu8.13+lp1943481v20210914b2
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1943481
>
> Title:
> libvirtd crashes when creating network interface pools in
> 6.0.0-0ubuntu8.13
>
> Status in libvirt package in Ubuntu:
> New
> Status in libvirt source package in Focal:
> In Progress
>
> Bug description:
> The latest libvirtd (6.0.0-0ubuntu8.13) crashes when trying to bring
> up network pools with the stacktrace below. I tracked down the
> problem to the newly added patch (lp-1892132-Add-phys_port_name-
> support-on-virPCIGetNetName.patch). Assigning *netname =
> firstEntryName; ends up in memory corruption. Looking at the
> mainline, I changed it to the following:
>
> *netname = g_steal_pointer(&firstEntryName);
>
> or you can just do
>
> firstEntryName = NULL;
>
> Both will solve the problem.
>
>
> #0 __GI_raise (sig=sig@entry=6) at
> ../sysdeps/unix/sysv/linux/raise.c:50
> #1 0x00007f40e5d1c859 in __GI_abort () at abort.c:79
> #2 0x00007f40e5d873ee in __libc_message (action=action@entry=do_abort,
> fmt=fmt@entry=0x7f40e5eb1285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
> #3 0x00007f40e5d8f47c in malloc_printerr (str=str@entry=0x7f40e5eb35d0
> "free(): double free detected in tcache 2") at malloc.c:5347
> #4 0x00007f40e5d910ed in _int_free (av=0x7f40c8000020,
> p=0x7f40c80079e0, have_lock=0) at malloc.c:4201
> #5 0x00007f40e61a9a4f in virFree (ptrptr=0x7f40c8003b60) at
> ../../../src/util/viralloc.c:348
> #6 0x00007f40dd0cf8b1 in networkCreateInterfacePool
> (netdef=0x7f40840187f0) at ../../../src/network/bridge_driver.c:2849
> #7 0x00007f40dd0d799c in networkStartNetworkExternal
> (obj=0x7f408400f720) at ../../../src/network/bridge_driver.c:2938
> #8 networkStartNetwork (driver=driver@entry=0x7f408400a7a0,
...

Read more...

Revision history for this message
Matthew Ruffell (mruffell) wrote :

Hi Paul,

Thank you very much for testing, we appreciate it.

I'll make sure we get this fix fast-tracked, and try get a new libvirt build into -proposed in a couple hours, and try go for a release to -updates in the next day or so.

Thanks,
Matthew

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thank you Matthew for the quick response and I see you already added Frode who was driving this change.

I have reviewed the PPA and the diff that it has right now.

Yes 77401d54 seems present and c0ae4919e would be needed for that as dependency.
The code still has the needed VIR_DIR_CLOSE so it is not also leaking.

Around firstEntryName where the current issue happens the formerly merged refactor had:
  *netname = g_steal_pointer(&firstEntryName);
But the backport was
  *netname = firstEntryName;
And now your proposed solution is to add:
  firstEntryName = NULL;

(all that on a g_autofree type)

Let us play this through:

So in the upstream code it does:
  firstEntryName = NULL; (init)
  firstEntryName = g_strdup(entry->d_name); (assign a value)
  *netname = g_steal_pointer(&firstEntryName); (transfer ownership, sets NULL)
  on return g_autofree frees firstEntryName (being NULL this is a no-op, but a fallback for
    other return paths)

In the current bad backport it does:
  firstEntryName = NULL; (init)
  firstEntryName = g_strdup(entry->d_name); (assign a value)
  *netname = firstEntryName; (direct take over, leaving firstEntryName as-is)
  on return g_autofree frees firstEntryName which still being used from netname causes the crash

The suggestion to set
  firstEntryName = NULL;
will prevent the auto-clean from freeing the value and thereby prevent the segfault.
But will there be any return paths where it would need to be freed because of a leak?
This happens late on the way out which is good.
Yeah - I agree there is no return path that would leak firstEntryName.
But for clarity and matching what eventually is upstream is there a reason not to use g_steal_pointer in the very same place. The includes are already in place other code in virpci.c already uses it.

So instead of
  *netname = firstEntryName;
  firstEntryName = NULL;
maybe
  *netname = g_steal_pointer(&firstEntryName);

Both should be fine, not stopping you.
I've also taken the chance to reference this bug in the "testcase that should be added to regression tests" list.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I also double checked if Hirsute is ok and I agree to comment 5 - Hirsute already uses g_steal_pointer in that place and thereby is fine.

Ok, discussed with Matthew - g_steal_pointer would indeed be ok there as well, but OTOH I've checked the g_steal_pointer in glib2 glib2.0/glib/gmem.h and it does nothing else than what the code does now.
Given that it is a regression-update we do not want to loose any time.

I've done a few more checks and it LGTM also we should not loose any time on it, so I'm sponsoring this into Focal-unapproved.

Changed in libvirt (Ubuntu):
status: New → Invalid
importance: Critical → Undecided
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Only a focal issue, so I marked the general libvirt task as invalid

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Sponsored, Matthew will add the updated Description (with the SRU template) any minute.

description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Paul, or anyone else affected,

Accepted libvirt into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/libvirt/6.0.0-0ubuntu8.14 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in libvirt (Ubuntu Focal):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-focal
Revision history for this message
Matthew Ruffell (mruffell) wrote :

Hi Paul,

Could you please install the libvirt packages in -proposed and verify that it fixes the problem?

Instructions to Install (on a Focal system):
1) cat << EOF | sudo tee /etc/apt/sources.list.d/ubuntu-$(lsb_release -cs)-proposed.list
# Enable Ubuntu proposed archive
deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed main universe
EOF
2) sudo apt update
3) sudo apt install libvirt-daemon-system libvirt-clients
4) sudo reboot
5) sudo apt-cache policy libvirt-daemon-system
Installed: 6.0.0-0ubuntu8.14

You may also wish to remove the -proposed archive once you have libvirt installed, if this is a production machine.
6) sudo rm /etc/apt/sources.list.d/ubuntu-$(lsb_release -cs)-proposed.list

If the fixed package works as expected, we will mark the launchpad bug as verified and fast-track the release to -updates.

Thanks,
Matthew

Revision history for this message
Paul Saab (ps-mu) wrote : Re: [Bug 1943481] Re: libvirtd crashes when creating network interface pools in 6.0.0-0ubuntu8.13
Download full text (8.5 KiB)

Installed, rebooted and VM's started up.. Fix is working

apt-cache policy libvirt-daemon-system

libvirt-daemon-system:
  Installed: 6.0.0-0ubuntu8.14
  Candidate: 6.0.0-0ubuntu8.14
  Version table:
 *** 6.0.0-0ubuntu8.14 500
        500 http://archive.ubuntu.com/ubuntu focal-proposed/main amd64
Packages
        100 /var/lib/dpkg/status
     6.0.0-0ubuntu8.13+lp1943481v20210914b2 500
        500 http://ppa.launchpad.net/mruffell/lp1943481-test/ubuntu
focal/main amd64 Packages
     6.0.0-0ubuntu8.13 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64
Packages
     6.0.0-0ubuntu8.3 500
        500 http://us.archive.ubuntu.com/ubuntu focal-security/main amd64
Packages
     6.0.0-0ubuntu8 500
        500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

On Mon, Sep 13, 2021 at 11:55 PM Matthew Ruffell <email address hidden>
wrote:

> Hi Paul,
>
> Could you please install the libvirt packages in -proposed and verify
> that it fixes the problem?
>
> Instructions to Install (on a Focal system):
> 1) cat << EOF | sudo tee /etc/apt/sources.list.d/ubuntu-$(lsb_release
> -cs)-proposed.list
> # Enable Ubuntu proposed archive
> deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed main
> universe
> EOF
> 2) sudo apt update
> 3) sudo apt install libvirt-daemon-system libvirt-clients
> 4) sudo reboot
> 5) sudo apt-cache policy libvirt-daemon-system
> Installed: 6.0.0-0ubuntu8.14
>
> You may also wish to remove the -proposed archive once you have libvirt
> installed, if this is a production machine.
> 6) sudo rm /etc/apt/sources.list.d/ubuntu-$(lsb_release -cs)-proposed.list
>
> If the fixed package works as expected, we will mark the launchpad bug
> as verified and fast-track the release to -updates.
>
> Thanks,
> Matthew
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1943481
>
> Title:
> libvirtd crashes when creating network interface pools in
> 6.0.0-0ubuntu8.13
>
> Status in libvirt package in Ubuntu:
> Invalid
> Status in libvirt source package in Focal:
> Fix Committed
>
> Bug description:
> [Impact]
>
> A regression was introduced in libvirt 6.0.0-0ubuntu8.13 for Focal,
> that affects users who use SR-IOV to pass through VF devices to KVM
> guests.
>
> The problem was introduced in the recent lp-1892132-Add-
> phys_port_name-support-on-virPCIGetNetName.patch patch, which changes
> how virPCIGetNetName() fetches the name of the underlying VF device,
> so it can be used to send netlink commands.
>
> There is a fallback case where we record the name of the device at the
> beginning, and if we fail all other lookups, we simply return the
> beginning name.
>
> In libvirt 6.0.0-0ubuntu8.13, a line to drop the reference to
> firstEntryName was dropped incorrectly:
>
> - if (firstEntryName) {
> - *netname = firstEntryName;
> - firstEntryName = NULL;
> - ret = 0;
> + if (firstEntryName) {
> + *netname = firstEntryName;
> + ret = 0;
>
> This results in a double free, as netname and firstEnt...

Read more...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thank you Paul!

tags: added: verification-done verification-done-focal
removed: verification-needed verification-needed-focal
Revision history for this message
Andy Whitcroft (apw) wrote :

Early release has been requested, as this is a simple fix this seems ok with some additional testing.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

As discussed I've thrown this into some general regression testing.
While it didn't catch the former issue it provides some general coverage and confidence avoiding that something totally unexpected slipped in.

I tested only x86 as that was the system I had ready, but nothing should be arch-specific
prep (x86_64) : Pass 20 F/S/N 0/0/0 - RC 0 (16 min 41390 lin)
migrate (x86_64) : Pass 280 F/S/N 0/0/0 - RC 0 (67 min 212868 lin)
cross (x86_64) : Pass 46 F/S/N 0/0/1 - RC 0 (52 min 72643 lin)
misc (x86_64) : Pass 73 F/S/N 0/0/0 - RC 0 (31 min 41778 lin)

Thereby I think this should now be ready to fix up the regression-update case.

Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for libvirt has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libvirt - 6.0.0-0ubuntu8.14

---------------
libvirt (6.0.0-0ubuntu8.14) focal; urgency=medium

  * Fixup backport of "util: Add phys_port_name support on virPCIGetNetName"
    to include the incorrectly removed "firstEntryName = NULL;" line, which
    caused a regression bringing up network pools. (LP: #1943481)
    - d/p/u/lp-1892132-Add-phys_port_name-support-on-virPCIGetNetName.patch

 -- Matthew Ruffell <email address hidden> Tue, 14 Sep 2021 14:00:49 +1200

Changed in libvirt (Ubuntu Focal):
status: Fix Committed → Fix Released
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.