
On 05/21/2018 08:15 AM, Daniel P. Berrangé wrote:
When a QEMU VM shuts down its TAP device gets deleted while nwfilter IP address learning thread is still capturing packets. It is seen that with TPACKET_V3 support in libcap, the pcap_next() call will not always exit its poll() when the NIC is removed. This prevents the learning thread from exiting which blocks the rest of libvirtd waiting on mutex acquisition. By switching to do poll() in libvirt code, we can ensure that we always exit the poll() at a time that is right for libvirt.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/nwfilter/nwfilter_learnipaddr.c | 37 +++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-)
FWIW: This patch is related to: https://www.redhat.com/archives/libvir-list/2018-May/msg01440.html Reviewed-by: John Ferlan <jferlan@redhat.com> I think this needs to be pushed before the release! Since Daniel is away, I can take care of that. I will wait for Monday though to ensure there's no objection... There's also a companion patch: https://www.redhat.com/archives/libvir-list/2018-May/msg01429.html but I have some issues with that and will post an alternative that would also need to be pushed before the release. John