Bug 732142

Summary: "Internal error: Performing unsafe table load" error during mirror image split
Product: Red Hat Enterprise Linux 6 Reporter: Corey Marthaler <cmarthal>
Component: lvm2Assignee: Jonathan Earl Brassow <jbrassow>
Status: CLOSED ERRATA QA Contact: Corey Marthaler <cmarthal>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: agk, dwysocha, heinzm, jbrassow, mbroz, prajnoha, prockai, thornber, zkabelac
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: lvm2-2.02.87-2.el6 Doc Type: Bug Fix
Doc Text:
Before, an improper activation sequence was used while performing an image split operation. That caused a device-mapper table to be loaded while some of processed devices were known to be suspended. This has been fixed and the activation sequence has been reordered so that the table is always loaded at proper time.
Story Points: ---
Clone Of:
: 749359 (view as bug list) Environment:
Last Closed: 2011-12-06 16:59:49 UTC Type: ---
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: 743047, 749359    
Attachments:
Description Flags
Patch committed upstream to fix this bug. none

Description Corey Marthaler 2011-08-19 23:14:02 UTC
Description of problem:
[root@taft-01 ~]# lvs
 LV                    VG          Attr   LSize   Log                        Copy% 
 split_multiple_images split_image mwi-a- 300.00m split_multiple_images_mlog 100.00        

[root@taft-01 ~]# lvconvert --splitmirrors 2 --name new split_image/split_multiple_images
 Internal error: Performing unsafe table load while 7 device(s) are known to be suspended:  (253:10) 
 Internal error: Performing unsafe table load while 7 device(s) are known to be suspended:  (253:7) 
 Logical volume split_multiple_images converted.


Version-Release number of selected component (if applicable):
2.6.32-188.el6.x86_64

lvm2-2.02.87-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
lvm2-libs-2.02.87-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
lvm2-cluster-2.02.87-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
udev-147-2.37.el6    BUILT: Wed Aug 10 07:48:15 CDT 2011
device-mapper-1.02.66-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
device-mapper-libs-1.02.66-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
device-mapper-event-1.02.66-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
device-mapper-event-libs-1.02.66-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011
cmirror-2.02.87-1.el6    BUILT: Fri Aug 12 06:11:57 CDT 2011


How reproducible:
Every time

Comment 1 Alasdair Kergon 2011-08-19 23:44:21 UTC
Bug in _split_mirror_images() in mirror.c:
It has the sequence suspend, commit, activate, resume.
That sequence is not permitted - it must be suspend, commit, resume.

The activate has to be handled another way e.g. before, after, or implicitly by the existing suspend+resume detecting the requirement for it and handling it internally.

Comment 2 Alasdair Kergon 2011-08-19 23:51:52 UTC
The error message is a new message to detect bugs like this so we can get them fixed.  The bug itself is not a regression, as it'll have been doing the wrong thing for a long time.  But in the unlikely event we find it impossible to fix this and any other similar bugs before the release, we'll disable the error message and hide the bugs again.

Comment 4 Jonathan Earl Brassow 2011-09-01 19:27:47 UTC
committed upstream for LVM version 2.02.89

Comment 5 Jonathan Earl Brassow 2011-09-01 19:28:48 UTC
Created attachment 521084 [details]
Patch committed upstream to fix this bug.

Comment 7 Corey Marthaler 2011-09-27 19:54:58 UTC
Fix verified. No longer seeing the "Performing unsafe table load" errors while splitting images.

2.6.32-198.el6.x86_64

lvm2-2.02.87-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
lvm2-libs-2.02.87-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
lvm2-cluster-2.02.87-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
udev-147-2.38.el6    BUILT: Fri Sep  9 16:25:50 CDT 2011
device-mapper-1.02.66-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
device-mapper-libs-1.02.66-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
device-mapper-event-1.02.66-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
device-mapper-event-libs-1.02.66-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011
cmirror-2.02.87-3.el6    BUILT: Wed Sep 21 09:54:55 CDT 2011


SCENARIO - [split_off_multiple_images]
Create a mirror with many legs and then split off multiple images creating multiple mirrors
taft-01: lvcreate -m 4 -n split_multiple_images -L 300M split_image
Waiting until all mirrors become fully syncd...
   0/1 mirror(s) are fully synced: ( 79.17% )
   1/1 mirror(s) are fully synced: ( 100.00% )

splitting off multiple legs...

Deactivating mirror new... and removing
Deactivating mirror split_multiple_images... and removing

Comment 8 Peter Rajnoha 2011-10-27 07:49:40 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Before, an improper activation sequence was used while performing an image split operation. That caused a device-mapper table to be loaded while some of devices processed were known to be suspended. This has been fixed and the activation sequence has been reordered so that the table is always loaded at proper time.

Comment 9 Peter Rajnoha 2011-10-27 07:51:21 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-Before, an improper activation sequence was used while performing an image split operation. That caused a device-mapper table to be loaded while some of devices processed were known to be suspended. This has been fixed and the activation sequence has been reordered so that the table is always loaded at proper time.+Before, an improper activation sequence was used while performing an image split operation. That caused a device-mapper table to be loaded while some of processed devices were known to be suspended. This has been fixed and the activation sequence has been reordered so that the table is always loaded at proper time.

Comment 10 errata-xmlrpc 2011-12-06 16:59:49 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-2011-1522.html