Bug 1020304

Summary: blkdeactivate loops when specific device name is used
Product: Red Hat Enterprise Linux 6 Reporter: Nenad Peric <nperic>
Component: lvm2Assignee: Peter Rajnoha <prajnoha>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: high    
Version: 6.6CC: agk, dwysocha, heinzm, jbrassow, msnitzer, prajnoha, prockai, thornber, tlavigne, zkabelac
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: lvm2-2.02.100-7.el6 Doc Type: Bug Fix
Doc Text:
The blkdeactivate script iterates over the list of devices if they're given as an argument and it tries to unmount/deactivate them one by one. However, this iteration failed to proceed if any of the umount/deactivation was unsuccessful. As a result of this bug, the same device was tried again and again, causing an endless loop, never proceeding to the next device given. This has been fixed and if blkdeactivate fails to unmount/deactivate any of the devices given as an argument, the processing of the device is properly skipped and blkdeactivate proceeds with processing the next device given.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-21 23:29:32 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:

Description Nenad Peric 2013-10-17 12:19:10 UTC
Description of problem:

If blkdeactivate is used with a specific device name which happens to be in use, it gets stuck in an infinite loop. 

Version-Release number of selected component (if applicable):

lvm2-2.02.100-6.el6

How reproducible:

Everytime

Steps to Reproduce:

run blkdeactivate with a specific device which is currently being used:

blkdeactivate -u /dev/mirror_sanity/lvol0 
Deactivating block devices:
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
  [UMOUNT]: unmounting mirror_sanity-lvol0 (dm-2) mounted on /mnt/tests... skipping
.
.
.


Expected results:

Really SKIP after message said 'skipping' :)

Comment 6 Nenad Peric 2013-10-24 09:07:34 UTC
[root@virt-008 other1]# blkdeactivate -e -u /dev/vg/lvol0 
Deactivating block devices:
  [UMOUNT]: unmounting vg-lvol0 (dm-5) mounted on /mnt/other1... umount: /mnt/other1: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
skipping
[root@virt-008 other1]# 


Verified with:

lvm2-2.02.100-7.el6.x86_64

Comment 7 errata-xmlrpc 2013-11-21 23:29:32 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.

http://rhn.redhat.com/errata/RHBA-2013-1704.html