Blame SOURCES/libvirt-util-command-Ignore-bitmap-errors-when-enumerating-file-descriptors-to-close.patch

Pablo Greco 40546a
From 2544ab6ac5b788d2df319afaef8d495409aa7b32 Mon Sep 17 00:00:00 2001
Pablo Greco 40546a
Message-Id: <2544ab6ac5b788d2df319afaef8d495409aa7b32@dist-git>
Pablo Greco 40546a
From: Peter Krempa <pkrempa@redhat.com>
Pablo Greco 40546a
Date: Tue, 30 Jul 2019 16:04:51 +0200
Pablo Greco 40546a
Subject: [PATCH] util: command: Ignore bitmap errors when enumerating file
Pablo Greco 40546a
 descriptors to close
Pablo Greco 40546a
MIME-Version: 1.0
Pablo Greco 40546a
Content-Type: text/plain; charset=UTF-8
Pablo Greco 40546a
Content-Transfer-Encoding: 8bit
Pablo Greco 40546a
Pablo Greco 40546a
virCommandMassCloseGetFDsLinux fails when running libvird on valgrind
Pablo Greco 40546a
with the following message:
Pablo Greco 40546a
Pablo Greco 40546a
libvirt:  error : internal error: unable to set FD as open: 1024
Pablo Greco 40546a
Pablo Greco 40546a
This is because valgrind opens few file descriptors beyond the limit:
Pablo Greco 40546a
Pablo Greco 40546a
65701125 lr-x------. 1 root root 64 Jul 18 14:48 1024 -> /home/pipo/build/libvirt/gcc/src/.libs/libvirtd
Pablo Greco 40546a
65701126 lrwx------. 1 root root 64 Jul 18 14:48 1025 -> '/tmp/valgrind_proc_3849_cmdline_186612e3 (deleted)'
Pablo Greco 40546a
65701127 lrwx------. 1 root root 64 Jul 18 14:48 1026 -> '/tmp/valgrind_proc_3849_auxv_186612e3 (deleted)'
Pablo Greco 40546a
65701128 lrwx------. 1 root root 64 Jul 18 14:48 1027 -> /dev/pts/11
Pablo Greco 40546a
65701129 lr-x------. 1 root root 64 Jul 18 14:48 1028 -> 'pipe:[65689522]'
Pablo Greco 40546a
65701130 l-wx------. 1 root root 64 Jul 18 14:48 1029 -> 'pipe:[65689522]'
Pablo Greco 40546a
65701131 lr-x------. 1 root root 64 Jul 18 14:48 1030 -> /tmp/vgdb-pipe-from-vgdb-to-3849-by-root-on-angien
Pablo Greco 40546a
Pablo Greco 40546a
Ignore bitmap errors in this case since we'd leak those FD's anyways in
Pablo Greco 40546a
the previous scenario.
Pablo Greco 40546a
Pablo Greco 40546a
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Pablo Greco 40546a
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Pablo Greco 40546a
(cherry picked from commit 728343983787cbd4d7ae8fa2007a157bb140f02a)
Pablo Greco 40546a
Pablo Greco 40546a
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1721434
Pablo Greco 40546a
Pablo Greco 40546a
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Pablo Greco 40546a
Message-Id: <b10f29e40efb516e15a053c2e3aa8963c3ea9715.1564495366.git.mprivozn@redhat.com>
Pablo Greco 40546a
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Pablo Greco 40546a
---
Pablo Greco 40546a
 src/util/vircommand.c | 7 +------
Pablo Greco 40546a
 1 file changed, 1 insertion(+), 6 deletions(-)
Pablo Greco 40546a
Pablo Greco 40546a
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
Pablo Greco 40546a
index 2353a4a554..dfc7e5428b 100644
Pablo Greco 40546a
--- a/src/util/vircommand.c
Pablo Greco 40546a
+++ b/src/util/vircommand.c
Pablo Greco 40546a
@@ -519,12 +519,7 @@ virCommandMassCloseGetFDsLinux(virCommandPtr cmd ATTRIBUTE_UNUSED,
Pablo Greco 40546a
             goto cleanup;
Pablo Greco 40546a
         }
Pablo Greco 40546a
 
Pablo Greco 40546a
-        if (virBitmapSetBit(fds, fd) < 0) {
Pablo Greco 40546a
-            virReportError(VIR_ERR_INTERNAL_ERROR,
Pablo Greco 40546a
-                           _("unable to set FD as open: %d"),
Pablo Greco 40546a
-                           fd);
Pablo Greco 40546a
-            goto cleanup;
Pablo Greco 40546a
-        }
Pablo Greco 40546a
+        ignore_value(virBitmapSetBit(fds, fd));
Pablo Greco 40546a
     }
Pablo Greco 40546a
 
Pablo Greco 40546a
     if (rc < 0)
Pablo Greco 40546a
-- 
Pablo Greco 40546a
2.22.0
Pablo Greco 40546a