USB HDD makes lshw seg-fault when run as root

Bug #1471983 reported by Ben Dover
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
lshw (Ubuntu)
Fix Released
Medium
Unassigned
Trusty
Fix Released
Medium
Dan Streetman
Vivid
Won't Fix
Medium
Unassigned
Wily
Fix Released
Medium
Unassigned
Xenial
Fix Released
Medium
Dan Streetman
Artful
Fix Released
Medium
Unassigned

Bug Description

[Impact]

Scenario #1:
* When there is an external USB External Drive[1] connected to the system, 'lshw' command segfaults.

Scenario #2:
* In the Landscape context, 'lshw' is use for Landscape clients[2] HW inventory ... if an USB External Drive[1] is connected on a Trusty Landscape client, lshw will segfault, thus Landcape inventory for this computer won't be reported/updated.

[1] - In this case :
Patriot 32GB Supersonic Rage Series USB 3.0 Flash Drive

[2] - landscape-client
landscape/manager/hardwareinfo.py: command = "/usr/bin/lshw"

[Test Case]

Scenario #1:
 * Install Ubuntu Trusty/14.04 LTS
 * Install lshw
   - sudo apt-get install lshw -y
 * Connect the USB 3.0 external drive to the system from where 'lshw' will be executed.
 * Execute 'lshw' or any other tools that uses 'lshw' behind the scene. (Example : Landscape computer inventory, ...)

Scenario #2:
 * Install Ubuntu Trusty/14.04 LTS
 * Install landscape-client
 * Register the computer to the Landscape (Dedicated server or hosted)
 * Client HW inventory won't happen and system will store a 'lshw' crash file under /var/crash.

[Regression Potential]

 * Risk is low, the upstream commit has been specifically made upstream to fix this problem, and the fix is part of 'lshw' Ubuntu package since 2015, Wily. I don't know why Trusty never been SRU'd at the same time, but it's never too late to fix it now that we have users facing this problem in Trusty/14.04 (LTS)

 * It's been ~3 years now since the patch has been first introduced in lshw upstream, and since then no known regression or else has been reporter against this specific commit.

 * Debian has the fix.

 * The code changed by this patch handles querying the serial number, so regression in this area may cause incorrect or missing serial number(s) to be reported by lshw.

[Other Info]

 * Upstream commits :
https://ezix.org/src/pkg/lshw/commit/d048d300b5daeb44887a7fc06ddeb120119cac8a
https://ezix.org/src/pkg/lshw/commit/7b57987bb21d8c178c9beba1f5a574eb0af18e54

* Bugs:
http://www.ezix.org/project/ticket/653
http://www.ezix.org/project/ticket/701

[Original Description]
The HDD enclosure causing this is the 'ORICO 2.5 inch USB 3.0'
As seen here http://www.amazon.co.uk/dp/B00BH83LYG/

When the enclosure is plugged in, the lshw command runs fine as a plain user, but when run as root with either 'sudo su', 'sudo -i' or just 'sudo' (I tried all to be sure), lshw starts the normal process of scanning through the stuff it scans, but instead of outputting any information, it seg-faults with the message "Segmentation Fault".

When I unplug the HDD enclosure, lshw then runs fine as root.
This problem occurs both with USB 3.0 and USB 2.0, and has been tested on an AMD 64-bit machine running Xubuntu 14.04 (upgraded from 12.04).

I also tested on an older Intel 32-bit machine running Xubuntu 14.04 and got the same problem, except this time the message was different;
"
terminate called after throwing an instance of 'std::length_error'
  what(): basic_string::_S_create
"

I have pasted an extract from dmesg (from the AMD 64-bit machine) here:
http://pastebin.com/mTfJV04k
of which mentions lshw with some information about the USB device.

(this is my first ever bug report, so apologies in advanced if I made any mistakes)
(Package version lshw 02.16-2ubuntu1.2)

Related branches

Revision history for this message
Chen-Han Hsiao (Stanley) (swem) wrote :

I also encounter this issue in Ubuntu OEM project.

This bug is fixed in https://github.com/lyonel/lshw/commit/d048d300b5daeb44887a7fc06ddeb120119cac8a

The issue in upstream: [lshw segfaults, with some 16GB USB-3 sticks from Patriot] http://www.ezix.org/project/ticket/653

I've made a patch to fix it.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Hi, thanks for the debdiff!

Two comments:

1- Could you please list both patches in the changelog along with a small description of what they accomplish?
2- While the "use-a-different-approach-for-scanning-SCSI-generic-d.patch" change seems to be included in 2.17 currently in vivid and wily, the "presumably-fix-653.patch" change is not. Could you please prepare debdiffs for Vivid and Wily?

Thanks!

Changed in lshw (Ubuntu Trusty):
status: New → Confirmed
Changed in lshw (Ubuntu Vivid):
status: New → Confirmed
Changed in lshw (Ubuntu Wily):
status: New → Confirmed
Revision history for this message
Brian Murray (brian-murray) wrote :

I don't see very many crash reports regarding lshw on the Error Tracker so I'm setting the importance of this to Medium.

Changed in lshw (Ubuntu Wily):
importance: Undecided → Medium
Changed in lshw (Ubuntu Vivid):
importance: Undecided → Medium
Changed in lshw (Ubuntu Trusty):
importance: Undecided → Medium
Revision history for this message
Michael Terry (mterry) wrote :

I've uploaded the wily patch to wily. Thanks for it!

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lshw - 02.17-1.1ubuntu3

---------------
lshw (02.17-1.1ubuntu3) wily; urgency=medium

  * [d048d30] Fix lshw crash issue on system with some USB-3 sticks
    (LP: #1471983)

 -- Chen-Han Hsiao (Stanley) <email address hidden> Sun, 11 Oct 2015 21:35:54 +0800

Changed in lshw (Ubuntu Wily):
status: Confirmed → Fix Released
Eric Desrochers (slashd)
Changed in lshw (Ubuntu Xenial):
status: New → Fix Released
Changed in lshw (Ubuntu Vivid):
status: Confirmed → Won't Fix
Changed in lshw (Ubuntu Trusty):
status: Confirmed → In Progress
assignee: nobody → Eric Desrochers (slashd)
Eric Desrochers (slashd)
description: updated
Eric Desrochers (slashd)
description: updated
description: updated
description: updated
Revision history for this message
Eric Desrochers (slashd) wrote :

debdiff - lshw for Trusty/14.04 LTS

Eric Desrochers (slashd)
tags: added: sts
Eric Desrochers (slashd)
description: updated
Revision history for this message
Eric Desrochers (slashd) wrote :

debdiff V2 - lshw for Trusty/14.04 LTS

Revision history for this message
Dan Streetman (ddstreet) wrote :

eric graciously offered for me to take this bug for more SRU experience, thanks eric!

Changed in lshw (Ubuntu Trusty):
assignee: Eric Desrochers (slashd) → Dan Streetman (ddstreet)
Dan Streetman (ddstreet)
description: updated
Eric Desrochers (slashd)
description: updated
description: updated
Eric Desrochers (slashd)
description: updated
Revision history for this message
Eric Desrochers (slashd) wrote :

Sponsored, the package is now waiting in the Trusty upload queue for the SRU verification team approval before it starts building in trusty-proposed.

Thanks Dan !

tags: added: sts-sponsor-done-slashd
Eric Desrochers (slashd)
Changed in lshw (Ubuntu Xenial):
assignee: nobody → Dan Streetman (ddstreet)
status: Fix Released → In Progress
Revision history for this message
Dan Streetman (ddstreet) wrote :
Revision history for this message
Dan Streetman (ddstreet) wrote :
Changed in lshw (Ubuntu Xenial):
importance: Undecided → Medium
Revision history for this message
Dan Streetman (ddstreet) wrote :

additional upstream commit 7b57987bb21d8c178c9beba1f5a574eb0af18e54 requested by apw, as the type of the len var should be uint8_t not char; the serial number string len may be > 127

that commit is needed in trusty and xenial. debdiffs updated.

Revision history for this message
Eric Desrochers (slashd) wrote :

Sponsored for both trusty and xenial

description: updated
Eric Desrochers (slashd)
description: updated
Revision history for this message
Eric Desrochers (slashd) wrote :

# The package is now found in xenial-proposed but the LP bug haven't been updated. #
# I'm doing it manually on behalf of SRU verification team #

Hello Ben Dover, or anyone else affected,

Accepted python-neutronclient into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/lshw/02.17-1.1ubuntu3.3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

- Eric

tags: added: verification-needed verification-needed-xenial
Changed in lshw (Ubuntu Xenial):
status: In Progress → Fix Committed
Revision history for this message
Andy Whitcroft (apw) wrote : Please test proposed package

Hello Ben, or anyone else affected,

Accepted lshw into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/lshw/02.16-2ubuntu1.4 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-trusty to verification-done-trusty. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-trusty. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in lshw (Ubuntu Trusty):
status: In Progress → Fix Committed
tags: added: verification-needed-trusty
Eric Desrochers (slashd)
tags: added: sts-sru-needed
Revision history for this message
Eric Desrochers (slashd) wrote :

## VERIFICATION XENIAL ##

The lshw binary package found in xenial-proposed (Version: 02.17-1.1ubuntu3.3) works well and properly report informations of a known problematic USB 3.0 drive[1] (reported by a user):
Patriot Supersonic Rage (32GB) USB 3.0 flash drive.

and so far also work well with other USB devices that I have tested such as a Logitech webcam[2].

[1 - lshw output - Patriot USB 3.0
...
*-usb
                   description: Mass storage device
                   product: Patriot Memory
                   physical id: 1
                   bus info: usb@2:1
                   logical name: scsi3
                   version: 1.00
                   serial: 0701788EAE02AE03
                   capabilities: usb-3.10 scsi emulated scsi-host
                   configuration: driver=usb-storage maxpower=504mA speed=5000Mbit/s
                 *-disk
                      description: SCSI Disk
                      product: Patriot Memory
                      physical id: 0.0.0
                      bus info: scsi@3:0.0.0
                      logical name: /dev/sda
                      version: PMAP
                      size: 29GiB (31GB)
                      capabilities: removable
                      configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
...

[2] - Logitech webcam
..
 *-usb:0
                   description: Video
                   product: HD Pro Webcam C920
                   vendor: Logitech, Inc.
                   physical id: 4
                   bus info: usb@1:4
                   version: 0.11
                   serial: D23B587F
                   capabilities: usb-2.00
                   configuration: driver=snd-usb-audio maxpower=500mA speed=480Mbit/s
..

- Eric

tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
Eric Desrochers (slashd) wrote :

## VERIFICATION TRUSTY ##

The lshw binary package found in trusty-proposed (Version: 02.16-2ubuntu1.4) works well and now properly report informations of a known problematic USB 3.0 drive[1] (reported by a user).

I also confirmed it was segfaulting with "02.16-2ubuntu1.3" when a USB 3.0 drive was connected and no longer segfault with proposed pkg "02.16-2ubuntu1.4"

[1] - Patriot Supersonic Rage (32GB) USB 3.0 flash drive.

- Eric

tags: added: verification-done verification-done-trusty
removed: verification-needed verification-needed-trusty
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lshw - 02.17-1.1ubuntu3.3

---------------
lshw (02.17-1.1ubuntu3.3) xenial; urgency=medium

  * Fix situation where lshw segfaults, when there is an external
    USB 3.0 drive connected to the system. (LP: #1471983)
    - d/p/fix-701-SCSI-inquiry-fails-on-IA64.patch:
      use uint8_t instead of char where unsigned is needed.

 -- Dan Streetman <email address hidden> Thu, 19 Oct 2017 10:19:02 -0400

Changed in lshw (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for lshw has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lshw - 02.16-2ubuntu1.4

---------------
lshw (02.16-2ubuntu1.4) trusty; urgency=medium

  * Fix situation where lshw segfaults, when there is an external
    USB 3.0 drive connected to the system. (LP: #1471983)
    - d/p/presumably-fix-653.patch: use local var
    - d/p/fix-701-SCSI-inquiry-fails-on-IA64.patch:
      use uint8_t instead of char where unsigned is needed.

 -- Dan Streetman <email address hidden> Thu, 19 Oct 2017 10:19:02 -0400

Changed in lshw (Ubuntu Trusty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.