virCommandMassCloseGetFDsLinux fails when running libvird on valgrind
with the following message:
libvirt: error : internal error: unable to set FD as open: 1024
This is because valgrind opens few file descriptors beyond the limit:
65701125 lr-x------. 1 root root 64 Jul 18 14:48 1024 ->
/home/pipo/build/libvirt/gcc/src/.libs/libvirtd
65701126 lrwx------. 1 root root 64 Jul 18 14:48 1025 ->
'/tmp/valgrind_proc_3849_cmdline_186612e3 (deleted)'
65701127 lrwx------. 1 root root 64 Jul 18 14:48 1026 ->
'/tmp/valgrind_proc_3849_auxv_186612e3 (deleted)'
65701128 lrwx------. 1 root root 64 Jul 18 14:48 1027 -> /dev/pts/11
65701129 lr-x------. 1 root root 64 Jul 18 14:48 1028 -> 'pipe:[65689522]'
65701130 l-wx------. 1 root root 64 Jul 18 14:48 1029 -> 'pipe:[65689522]'
65701131 lr-x------. 1 root root 64 Jul 18 14:48 1030 ->
/tmp/vgdb-pipe-from-vgdb-to-3849-by-root-on-angien
Ignore bitmap errors in this case since we'd leak those FD's anyways in
the previous scenario.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/util/vircommand.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index 5141611ca4..4501c96bbf 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -446,12 +446,7 @@ virCommandMassCloseGetFDsLinux(virCommandPtr cmd ATTRIBUTE_UNUSED,
goto cleanup;
}
- if (virBitmapSetBit(fds, fd) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("unable to set FD as open: %d"),
- fd);
- goto cleanup;
- }
+ ignore_value(virBitmapSetBit(fds, fd));
}
if (rc < 0)
--
2.21.0