Bug 1324535

Summary: lvm2 lvmdump does not collect any data
Product: Red Hat Enterprise Linux 6 Reporter: Branislav Náter <bnater>
Component: sosAssignee: Shane Bradley <sbradley>
Status: CLOSED ERRATA QA Contact: Miroslav Hradílek <mhradile>
Severity: medium Docs Contact:
Priority: high    
Version: 6.8CC: agk, bmr, cww, gavin, mhradile, phracek, plambri, pmoravec, prajnoha, salmy, sbradley, zkabelac
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://github.com/sosreport/sos/issues/815
Whiteboard:
Fixed In Version: sos-3.2-44.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1324538 (view as bug list) Environment:
Last Closed: 2017-03-21 10:46:52 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:    
Bug Blocks: 1269194, 1324538, 1353701    

Description Branislav Náter 2016-04-06 14:45:04 UTC
Description of problem:
When using lvmdump=on (or lvmdump-am=on) options from lvm2 plugin, expected data are not collected.

Version-Release number of selected component (if applicable):
sos-3.2-40.el6

How reproducible:
always

Steps to Reproduce:
1. sosreport -o lvm2 --tmp-dir=. --batch -k lvm2.lvmdump=on

Actual results:
no data in sos_commands/lvm2/lvmdump/ directory

Expected results:
Expected data are present

Additional info:

When running lvmdump command and providing directory where to dump data (using -d <dirname> switch), directory should not exists. Otherwise lvmdump exits with error: "Fatal: <dirname> already exists"

When running lvmdump in lvm2 plugin, get_cmd_output_path() method from __init__.py is used:

cmd = lvmdump_cmd % (lvmdump_opts,
                             self.get_cmd_output_path(name="lvmdump")) <--------
        self.add_cmd_output(cmd)

This method creates provided directory "lvmdump" and that cause lvmdump command to fails.

Fix is as easy as run get_cmd_output_path() with "make=False" argument to prevent directory creation:

cmd = lvmdump_cmd % (lvmdump_opts,
                             self.get_cmd_output_path(name="lvmdump", make=False)) <--
        self.add_cmd_output(cmd)

Comment 3 Alasdair Kergon 2016-04-06 21:40:57 UTC
I've also updated lvmdump upstream to accept it if the directory already exists and is empty.

https://www.redhat.com/archives/lvm-devel/2016-April/msg00019.html
https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=55001ae9ec2c00a070f8dfa8541f4f17a6e2a284

Comment 19 errata-xmlrpc 2017-03-21 10:46:52 UTC
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://rhn.redhat.com/errata/RHBA-2017-0695.html