これを実行すると、リークが発生します。何が起こっているのかわかりません。パイプが閉じていないか、何か他のことが起こっている可能性があります。
def deactivateMetadataDevice(input_dmd_lun_wwn):
#print('pvremove /dev/mapper/' + input_dmd_lun_wwn)
status_cmd = False
ps = subprocess.Popen('/sbin/pvremove /dev/mapper/' + input_dmd_lun_wwn, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in iter(ps.stdout.readline, ''):
print line
if re.search('wiped', line):
status_cmd = True
else:
# Cleaning metadata and removing from LVM if ok then return true
status_cmd = False
raise Warning('\t\t PV /dev/mapper/'+ input_dmd_lun_wwn +' belongs to Volume Group')
return status_cmd
上記のコードを実行すると、この問題が発生します。
File descriptor 4 (pipe:[323948]) leaked on pvremove invocation. Parent PID 15380: python