Bug 1311138

Summary: rescan-scsi-bus.sh removing and re-adding disks it probably shouldn't
Product: Red Hat Enterprise Linux 6 Reporter: Sirius Rayner-Karlsson <akarlsso>
Component: sg3_utilsAssignee: David Sommerseth <davids>
Status: CLOSED ERRATA QA Contact: Jan Kepler <jkejda>
Severity: high Docs Contact:
Priority: high    
Version: 6.7CC: a.bleischwitz, akarlsso, amote, bnater, bubrown, chorn, coughlan, cww, davids, dhorak, hannsj_uhl, ionutjula, jkejda, jmagrini, nyewale, ovasik, rmadhuso, tmilsond
Target Milestone: betaKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1314887 (view as bug list) Environment:
Last Closed: 2016-05-11 00:30:06 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: 1172231, 1314887    
Attachments:
Description Flags
proposed patch none

Description Sirius Rayner-Karlsson 2016-02-23 13:25:47 UTC
Description of problem:

With sg3_utils-1.28-8.el6 the rescan-scsi-bus.sh script could be run with the '-r' flag on systems without problems. Updating to sg3_utils-1.28-9.el6_7 this causes filesystems residing on the internal disk to go read-only.

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

sg3_utils-1.28-9.el6_7

How reproducible:

Very, and it panicked my test VM twice, just running it.

Steps to Reproduce:
1. Install RHEL 6.7 and sg3_utils
2. Apply all errata
3. run "rescan-scsi-bus.sh -r"

Actual results:

Root filesystem goes read-only

Expected results:

System only removes and re-adds the LUNs that actually has changed.

Additional info:

Debugging this, I found that the fix from BZ#1291579 added double-quotes around two variables when comparing them. That creates a problem when the variable content have varying amount of leading or trailing whitespace.

The observation after putting a bit of debug in the script was the following:

~~~
"Host: scsi8 Channel: 00 Id: 01 Lun: 00
  Vendor:          Model: RHEL6x-2 SSD     Rev: F.5C
  Type:   Direct-Access                    ANSI SCSI revision: 05"
"Direct-Access                    "
"Direct-Access    "
~~~

Where the last two lines correspond to $TMPSTR and $TYPE. This meant the comparison failed and the script erroneously assumed the devices had changed, thus removing them and re-adding them.

Comment 1 Sirius Rayner-Karlsson 2016-02-23 13:29:36 UTC
Created attachment 1129761 [details]
proposed patch

Here is a proposed patch that simply strips leading and trailing whitespace from the variables and then use that in the comparison. I have tested it in my VM and it seems to work correctly. I have had additional confirmation from the reporter that it resolves the problem in their environment as well.

Comment 2 David Sommerseth 2016-03-03 19:26:39 UTC
*** Bug 1311557 has been marked as a duplicate of this bug. ***

Comment 16 David Sommerseth 2016-03-04 18:35:32 UTC
This issue has been fixed in sg3_utils-1.28-12.el6 (RHEL 6.8)

Comment 28 errata-xmlrpc 2016-05-11 00:30:06 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-2016-0905.html