Bug 727146

Summary: JMicron USB3.0 to SATA Bridge: Missing /dev/disk/by-id entries and wrong /dev/sdX mappings
Product: [Fedora] Fedora Reporter: Markus Lang <lang>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 15CC: gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-11 17:51:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
(vebose) output of lspci
none
(verbose) output of lsusb
none
full udevadm output for /dev/sdf
none
full udevadm output for /dev/sdg none

Description Markus Lang 2011-08-01 12:31:26 UTC
Created attachment 516125 [details]
(vebose) output of lspci

Description of problem:

I'm using a 'Sharkoon SATA QuickPort DUO USB3.0' docking station (http://www.sharkoon.com/?q=en/content/sata-quickport-duo-usb30-v2) on an Intel QM67 board providing two USB3.0 ports.

When docking two disks I do get incomplete links in the /dev/disk/by-id/ folder. It looks like that the disk that finishes first with initialisation gets an id link, the second disk doesn't. Also several tools like hdparm show the drive information of the first disk for both disks. Is this problem related to having more than one disk attached to one USB endpoint?

Steps to Reproduce:

1. Dock disks and power the docking station:

Aug  1 10:38:20 server kernel: [1265694.341844] usb 3-3: new high speed USB device using xhci_hcd and address 4
Aug  1 10:38:20 server kernel: [1265694.357061] xhci_hcd 0000:05:00.0: WARN: short transfer on control ep
Aug  1 10:38:20 server kernel: [1265694.357140] xhci_hcd 0000:05:00.0: WARN: short transfer on control ep
Aug  1 10:38:20 server kernel: [1265694.357227] xhci_hcd 0000:05:00.0: WARN: short transfer on control ep
Aug  1 10:38:20 server kernel: [1265694.357328] xhci_hcd 0000:05:00.0: WARN: short transfer on control ep
Aug  1 10:38:20 server kernel: [1265694.357376] usb 3-3: New USB device found, idVendor=152d, idProduct=0551
Aug  1 10:38:20 server kernel: [1265694.357379] usb 3-3: New USB device strings: Mfr=10, Product=11, SerialNumber=5
Aug  1 10:38:20 server kernel: [1265694.357382] usb 3-3: Product: USB3.0 to SATA Bridge
Aug  1 10:38:20 server kernel: [1265694.357384] usb 3-3: Manufacturer: JMicron
Aug  1 10:38:20 server kernel: [1265694.357386] usb 3-3: SerialNumber: 190B504101FF
Aug  1 10:38:20 server kernel: [1265694.359220] xhci_hcd 0000:05:00.0: WARN: short transfer on control ep
Aug  1 10:38:20 server kernel: [1265694.359369] xhci_hcd 0000:05:00.0: WARN: short transfer on control ep
Aug  1 10:38:20 server kernel: [1265694.364752] scsi9 : usb-storage 3-3:1.0
Aug  1 10:38:20 server mtp-probe: checking bus 3, device 4: "/sys/devices/pci0000:00/0000:00:1c.4/0000:05:00.0/usb3/3-3"
Aug  1 10:38:20 server mtp-probe: bus: 3, device: 4 was not an MTP device
Aug  1 10:38:21 server kernel: [1265695.371578] scsi 9:0:0:0: Direct-Access     WDC WD10 EADS-00L5B1      0000 PQ: 0 ANSI: 2 CCS
Aug  1 10:38:21 server kernel: [1265695.371808] scsi 9:0:0:1: Direct-Access     SAMSUNG  HD103SI          0000 PQ: 0 ANSI: 2 CCS
Aug  1 10:38:21 server kernel: [1265695.372415] sd 9:0:0:0: Attached scsi generic sg8 type 0
Aug  1 10:38:21 server kernel: [1265695.372612] sd 9:0:0:1: Attached scsi generic sg9 type 0
Aug  1 10:38:21 server kernel: [1265695.372916] sd 9:0:0:0: [sdf] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
Aug  1 10:38:21 server kernel: [1265695.373142] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265695.373547] sd 9:0:0:0: [sdf] Write Protect is off
Aug  1 10:38:21 server kernel: [1265695.373553] sd 9:0:0:0: [sdf] Assuming drive cache: write through
Aug  1 10:38:21 server kernel: [1265695.374127] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265695.374541] sd 9:0:0:0: [sdf] Assuming drive cache: write through
Aug  1 10:38:21 server kernel: [1265695.951433] sd 9:0:0:1: [sdg] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
Aug  1 10:38:21 server kernel: [1265695.972235] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265695.972643] sd 9:0:0:1: [sdg] Write Protect is off
Aug  1 10:38:21 server kernel: [1265695.972649] sd 9:0:0:1: [sdg] Assuming drive cache: write through
Aug  1 10:38:21 server kernel: [1265695.973989] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265695.974420] sd 9:0:0:1: [sdg] Assuming drive cache: write through
Aug  1 10:38:21 server kernel: [1265696.002665] GPT:disk_guids don't match.
Aug  1 10:38:21 server kernel: [1265696.002669] GPT:partition_entry_array_crc32 values don't match: 0x69478411 != 0x25b96809
Aug  1 10:38:21 server kernel: [1265696.002671] GPT: Use GNU Parted to correct GPT errors.
Aug  1 10:38:21 server kernel: [1265696.002689]  sdf: sdf1
Aug  1 10:38:21 server kernel: [1265696.004278] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265696.004678] sd 9:0:0:0: [sdf] Assuming drive cache: write through
Aug  1 10:38:21 server kernel: [1265696.004682] sd 9:0:0:0: [sdf] Attached SCSI disk
Aug  1 10:38:21 server kernel: [1265696.004966]  sdg: sdg1
Aug  1 10:38:21 server kernel: [1265696.005635] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265696.006094] sd 9:0:0:1: [sdg] Assuming drive cache: write through
Aug  1 10:38:21 server kernel: [1265696.006098] sd 9:0:0:1: [sdg] Attached SCSI disk
Aug  1 10:38:21 server kernel: [1265696.033123] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265696.053830] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265696.054464] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265696.055282] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:21 server kernel: [1265696.055911] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.208549] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.210027] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.596294] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.598214] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.599592] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.600360] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.606812] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.612204] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.617893] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.623029] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.721315] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint
Aug  1 10:38:22 server kernel: [1265696.787947] xhci_hcd 0000:05:00.0: WARN: Stalled endpoint

'WDC WD10 EADS-00L5B1' on scsi 9:0:0:0 attached to /dev/sdf
'SAMSUNG  HD103SI' on scsi 9:0:0:1 attached to /dev/sdg
In this example the WDC disk did initialize first.


2. lsusb -v shows two Endpoints:

lsusb -v
Bus 003 Device 004: ID 152d:0551 JMicron Technology Corp. / JMicron USA Technology Corp. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
  idProduct          0x0551 
  bcdDevice            1.00
  iManufacturer          10 JMicron
  iProduct               11 USB3.0 to SATA Bridge
  iSerial                 5 190B504101FF
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 USB Mass Storage
    bmAttributes         0xc0
      Self Powered
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              6 MSC Bulk-Only Transfer
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Status:     0x0001
  Self Powered


3. udevadm shows correct vendor and model values but no serial numbers:

udevadm info --query=all --attribute-walk --name=/dev/sdf
  looking at device '/devices/pci0000:00/0000:00:1c.4/0000:05:00.0/usb3/3-3/3-3:1.0/host9/target9:0:0/9:0:0:0/block/sdf':
    KERNEL=="sdf"
[...]
  looking at parent device '/devices/pci0000:00/0000:00:1c.4/0000:05:00.0/usb3/3-3/3-3:1.0/host9/target9:0:0/9:0:0:0':
    ATTRS{vendor}=="WDC WD10"
    ATTRS{model}=="EADS-00L5B1     "
[...]

udevadm info --query=all --attribute-walk --name=/dev/sdg
  looking at device '/devices/pci0000:00/0000:00:1c.4/0000:05:00.0/usb3/3-3/3-3:1.0/host9/target9:0:0/9:0:0:1/block/sdg':
    KERNEL=="sdg"
[...]
  looking at parent device '/devices/pci0000:00/0000:00:1c.4/0000:05:00.0/usb3/3-3/3-3:1.0/host9/target9:0:0/9:0:0:1':
[...]
    ATTRS{vendor}=="SAMSUNG "
    ATTRS{model}=="HD103SI         "
[...]


4. /dev/disk/by-path shows correct entries:

ls -la /dev/disk/by-path/
pci-0000:05:00.0-usb-0:3:1.0-scsi-0:0:0:0 -> ../../sdf
pci-0000:05:00.0-usb-0:3:1.0-scsi-0:0:0:0-part1 -> ../../sdf1
pci-0000:05:00.0-usb-0:3:1.0-scsi-0:0:0:1 -> ../../sdg
pci-0000:05:00.0-usb-0:3:1.0-scsi-0:0:0:1-part1 -> ../../sdg1
  
Actual results:

1. /dev/disk/by-id references both disks with the WWN / serial of the WDC disk:

ls -la /dev/disk/by-id | grep sdf
ata-WDC_WD10EADS-00L5B1_WD-WCAU4698XXXX -> ../../sdf
wwn-0x50014ee2ad20bXXX -> ../../sdf
ls -la /dev/disk/by-id | grep sdg
ata-WDC_WD10EADS-00L5B1_WD-WCAU4698XXXX-part1 -> ../../sdg1
wwn-0x50014ee2ad20bXXX-part1 -> ../../sdg1


2. hdparm lists identical details of the WDC disk for both disks:

hdparm -I /dev/sdf
/dev/sdf:
ATA device, with non-removable media
        Model Number:       WDC WD10EADS-00L5B1                     
        Serial Number:      WD-WCAU4698XXXX

hdparm -I /dev/sdg
/dev/sdg:
ATA device, with non-removable media
        Model Number:       WDC WD10EADS-00L5B1                     
        Serial Number:      WD-WCAU4698XXXX


Expected results:

I would have expected unique id references in the /dev/disk/by-id folder and not identical disk details for both /dev/sdf and /dev/sdg devices. The only reliable way to use those disks are the entries in the /dev/disk/by-path folder which makes it impossible to identify the disk by their WWN / serial number.


Additional info:

See attachment comments

Comment 1 Markus Lang 2011-08-01 12:32:44 UTC
Created attachment 516126 [details]
(verbose) output of lsusb

Comment 2 Markus Lang 2011-08-01 12:33:20 UTC
Created attachment 516127 [details]
full udevadm output for /dev/sdf

Comment 3 Markus Lang 2011-08-01 12:34:28 UTC
Created attachment 516128 [details]
full udevadm output for /dev/sdg

Comment 4 Josh Boyer 2012-06-06 16:52:32 UTC
What kernel were you seeing this problem with?  Does it still happen with the 2.6.43/3.3 update?

Comment 5 Josh Boyer 2012-07-11 17:51:34 UTC
Fedora 15 has reached it's end of life as of June 26, 2012.  As a result, we will not be fixing any remaining bugs found in Fedora 15.

In the event that you have upgraded to a newer release and the bug you reported is still present, please reopen the bug and set the version field to the newest release you have encountered the issue with.  Before doing so, please ensure you are testing the latest kernel update in that release and attach any new and relevant information you may have gathered.

Thank you for taking the time to file a report.  We hope newer versions of Fedora suit your needs.