Bug 1020013

Summary: External processes leak file descriptors
Product: Red Hat Enterprise Linux 7 Reporter: David Lehman <dlehman>
Component: python-blivetAssignee: David Lehman <dlehman>
Status: CLOSED CURRENTRELEASE QA Contact: Release Test Team <release-test-team>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.0CC: amulhern, anaconda-maint-list, bcl, dlehman, jsafrane, jstodola, jsynacek
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-blivet-0.18.7-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1016467 Environment:
Last Closed: 2014-06-13 09:50:36 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:
Bug Depends On: 1016467    
Bug Blocks:    

Description David Lehman 2013-10-16 19:05:39 UTC
+++ This bug was initially created as a clone of Bug #1016467 +++

Description of problem:
When working with lvm from blivet, I keep seeing messages like this in the log:

"
  INFO:program: Running... lvm pvs --unit=k --nosuffix --nameprefixes --rows --unquoted --noheadings -opv_uuid,pe_start,vg_name,vg_uuid,vg_size,vg_free,vg_extent_size,vg_extent_count,vg_free_count,pv_count --config global {locking_type=4}  /dev/vda4
  INFO:program: File descriptor 8 (/dev/mapper/control) leaked on lvm invocation. Parent PID 19615: python
"

Those may not be a problem, but they are a real problem if blivet tries to parse the output of an external program and instead of the real output, it gets something like "File descriptor 8 (/dev/mapper/control) leaked on lvm invocation. Parent PID 19976: python".


Version-Release number of selected component (if applicable):
python-blivet-0.22-1.fc21.noarch


How reproducible:
Always


Steps to Reproduce:
1. run blivet so it executes thinlvpoolname() in devicelibs/lvm.py
2. observe the output returned by the function


Actual results:
Output contains "File descriptor 8 (/dev/mapper/control) leaked on lvm invocation..." message and not the real output.


Expected results:
Output contains the name of the thin pool name as expected.


Additional info:

--- Additional comment from Jan Synacek on 2013-10-08 04:43:03 EDT ---



--- Additional comment from Jan Safranek on 2013-10-08 04:49:32 EDT ---

Note that leaked file descriptors produce also several AVCs, like mdadm accessing /dev/mapper/control.

Comment 1 David Lehman 2013-10-16 19:06:56 UTC
I have a patch for this.

Comment 3 Jan Stodola 2014-04-08 11:23:06 UTC
Reproduced with python-blivet-0.18.2-1.el7:

>>> blivet.devicelibs.lvm.thinlvpoolname("vgtest", "thin_pool")
'File descriptor 8 (/dev/mapper/control) leaked on lvm invocation. Parent PID 975: python'
>>>

Verified with python-blivet-0.18.34-1.el7:
>>> blivet.devicelibs.lvm.thinlvpoolname("vgtest", "thin_pool")
''
>>>

Moving to VERIFIED.

Comment 4 Ludek Smid 2014-06-13 09:50:36 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.