render / rpms / libvirt

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