Bug 1744751
Summary: | nbdkit-stats-filter leaks an fd | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux Advanced Virtualization | Reporter: | Eric Blake <eblake> |
Component: | nbdkit | Assignee: | Richard W.M. Jones <rjones> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 8.2 | CC: | eblake, mxie, mzhan, rjones, tzheng, zili |
Target Milestone: | rc | ||
Target Release: | 8.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | nbdkit-1.16.2-1.el8 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-05-05 09:49:40 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1756307 | ||
Bug Blocks: |
Description
Eric Blake
2019-08-22 19:22:43 UTC
I pushed commit 6da50ee7 to the upstream rhel-8.1 branch which backports both the log and stats filter fixes. If we rebase the few rhel-8.1 patches on top of stable-1.12 (moving from 1.12.5 to 1.12.6 as the baseline), that rebase action will rewrite the commit to just the stats filter fix (since the rest of stable-1.12 will pick up the log fix). If we rebase rhel-8.1 to the 1.14 release instead, then we don't need any rhel-specific patches backported on top. In RHEL 8.2 we've rebased to nbdkit 1.16 which should fix this one hopefully. Ideally therefore nothing needs to be done from a dev p.o.v. Reproduce the bug with builds: nbdkit-1.12.5-2.module+el8.1.1+5309+6d656f05.x86_64 nbdkit-basic-filters-1.12.5-2.module+el8.1.1+5309+6d656f05.x86_64 nbdkit-basic-plugins-1.12.5-2.module+el8.1.1+5309+6d656f05.x86_64 Steps to reproduce: 1. Use sh plugin coupled with stats and log filter to check fd leaks: # nbdkit -U - --filter=log --filter=stats sh - logfile=/dev/null statsfile=/dev/null --run 'qemu-io -r -f raw -c "r 0 1" $nbd' <<\EOF case $1 in get_size) echo 1m;; pread) ls -l /proc/$$/fd >/dev/tty dd iflag=count_bytes count=$3 if=/dev/zero || exit 1 ;; *) exit 2 ;; esac EOF total 0 lr-x------. 1 root root 64 Feb 6 07:27 0 -> 'pipe:[4078705]' l-wx------. 1 root root 64 Feb 6 07:27 1 -> 'pipe:[4078706]' l-wx------. 1 root root 64 Feb 6 07:27 2 -> 'pipe:[4078707]' lr-x------. 1 root root 64 Feb 6 07:27 255 -> /tmp/nbdkitshMqVbqu/inline-script.sh lr-x------. 1 root root 64 Feb 6 07:27 5 -> 'pipe:[4075386]' l-wx------. 1 root root 64 Feb 6 07:27 6 -> 'pipe:[4075386]' lrwx------. 1 root root 64 Feb 6 07:27 8 -> 'socket:[4079701]' read 1/1 bytes at offset 0 1 bytes, 1 ops; 00.01 sec (115.316446 bytes/sec and 115.3164 ops/sec) Reproduced result: There are fd > 2 pointing to pipes and sockets info in the output, so nbdkit is leaking fds. Verify the bug with builds: nbdkit-1.16.2-1.module+el8.2.0+5579+d71178e0.x86_64 nbdkit-basic-plugins-1.16.2-1.module+el8.2.0+5579+d71178e0.x86_64 nbdkit-basic-filters-1.16.2-1.module+el8.2.0+5579+d71178e0.x86_64 Steps: 1. Use sh plugin coupled with stats and log filter to check fd leaks: # nbdkit -U - --filter=log --filter=stats sh - logfile=/dev/null statsfile=/dev/null --run 'qemu-io -r -f raw -c "r 0 1" $nbd' <<\EOF case $1 in get_size) echo 1m;; pread) ls -l /proc/$$/fd >/dev/tty dd iflag=count_bytes count=$3 if=/dev/zero || exit 1 ;; *) exit 2 ;; esac EOF total 0 lr-x------. 1 root root 64 Feb 6 07:36 0 -> 'pipe:[58694]' l-wx------. 1 root root 64 Feb 6 07:36 1 -> 'pipe:[58695]' l-wx------. 1 root root 64 Feb 6 07:36 2 -> 'pipe:[58696]' lr-x------. 1 root root 64 Feb 6 07:36 255 -> /tmp/nbdkitshNBgNQc/inline-script.sh read 1/1 bytes at offset 0 1 bytes, 1 ops; 00.01 sec (82.760130 bytes/sec and 82.7601 ops/sec) Result: There is no fd > 2 pointing to pipes, sockets or /dev/null in the output, so the bug has been fixed, move the bug from ON_QA to VERIFIED Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:2017 |