Bug 2081276

Summary: PV cannot be deleted after removing it from a VG
Product: Red Hat Enterprise Linux 8 Reporter: Vojtech Trefny <vtrefny>
Component: python-blivetAssignee: Vojtech Trefny <vtrefny>
Status: CLOSED ERRATA QA Contact: Release Test Team <release-test-team-automation>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.7CC: jstodola, mlewando
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-blivet-3.4.0-10.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-08 09:49:04 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: 2066880    

Description Vojtech Trefny 2022-05-03 09:01:12 UTC
After removing a PV from a VG using ActionRemoveMember, the PV device cannot be deleted because blivet still thinks it is still part of the (active) VG it was removed from.

-----
executing action: [209] destroy format lvmpv on luks/dm-crypt luks-b802b7a4-cfc3-4ecd-8339-891332d441b8 (id 176)
                LUKSDevice.setup: luks-b802b7a4-cfc3-4ecd-8339-891332d441b8 ; orig: True ; status: True ; controllable: True ;
                LVMPhysicalVolume.destroy: device: /dev/mapper/luks-b802b7a4-cfc3-4ecd-8339-891332d441b8 ; type: lvmpv ; status: True ;

  File "/usr/lib/python3.10/site-packages/blivet/actionlist.py", line 48, in wrapped_func
    return func(obj, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/blivet/actionlist.py", line 328, in process
    action.execute(callbacks)
  File "/usr/lib/python3.10/site-packages/blivet/threads.py", line 53, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/blivet/deviceaction.py", line 760, in execute
    self.format.destroy()
  File "/usr/lib/python3.10/site-packages/blivet/threads.py", line 53, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/blivet/formats/__init__.py", line 552, in destroy
    self._pre_destroy(**kwargs)
  File "/usr/lib/python3.10/site-packages/blivet/threads.py", line 53, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/blivet/formats/__init__.py", line 562, in _pre_destroy
    raise DeviceFormatError("device is active")
blivet.errors.DeviceFormatError: device is active
-----

Comment 1 Vojtech Trefny 2022-05-03 09:04:12 UTC
upstream PR: https://github.com/storaged-project/blivet/pull/1040

Comment 3 Marta Lewandowska 2022-06-07 13:15:13 UTC
results of unit-tests for python-blivet-3.4.0-10.el8, rhel-8.7.0-gate

.
.
.
test_add_remove_pv (devices_test.lvm_test.LVMDeviceTest) ... ok
.
.
.

setting Verified: Tested

Comment 8 Jan Stodola 2022-06-27 07:46:16 UTC
Checked that python-blivet-3.4.0-12.el8 is in nightly compose RHEL-8.7.0-20220626.0

Moving to VERIFIED

Comment 10 errata-xmlrpc 2022-11-08 09:49:04 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 (python-blivet bug fix and enhancement update), 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-2022:7605