Bug 1311138 - rescan-scsi-bus.sh removing and re-adding disks it probably shouldn't
rescan-scsi-bus.sh removing and re-adding disks it probably shouldn't
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: sg3_utils (Show other bugs)
All Linux
high Severity high
: beta
: ---
Assigned To: David Sommerseth
Jan Kepler
: ZStream
: 1311557 (view as bug list)
Depends On:
Blocks: 1172231 1314887
  Show dependency treegraph
Reported: 2016-02-23 08:25 EST by Anders
Modified: 2016-05-22 19:35 EDT (History)
18 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1314887 (view as bug list)
Last Closed: 2016-05-10 20:30:06 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
proposed patch (604 bytes, patch)
2016-02-23 08:29 EST, Anders
no flags Details | Diff

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 2184591 None None None 2016-03-04 07:58 EST

  None (edit)
Description Anders 2016-02-23 08:25:47 EST
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):


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 Anders 2016-02-23 08:29 EST
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 14:26:39 EST
*** Bug 1311557 has been marked as a duplicate of this bug. ***
Comment 16 David Sommerseth 2016-03-04 13:35:32 EST
This issue has been fixed in sg3_utils-1.28-12.el6 (RHEL 6.8)
Comment 28 errata-xmlrpc 2016-05-10 20:30:06 EDT
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.


Note You need to log in before you can comment on or make changes to this bug.