External USB3 hard drive is sometimes not recognized (race condition?) - Event TRB for slot 14 ep 2 with no TDs queued

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello folks,

I have troubles with my external USB3 hard drive (a standard laptop drive put 
into an USB3 enclosure) and I have reported a bug about it here:
https://bugzilla.kernel.org/show_bug.cgi?id=101661

I was asked to re-send it to this mailing list, so here it is. I quote the 
initial bug description in full, but there are other attachments in the bugzilla,
please have a look.

I'll be happy to provide further information to resolve this issue.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I have a desktop machine with USB3 ports and an external hard drive
with USB3 enclosure. When I plug the disk into the USB3 port, it is in
roughly 50% recognized and mounted, and in the other cases no disk device
is created and the disk is not accessible. System journal reports this:

Jul 17 14:41:07 titan kernel: usb 2-6.2: new SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:41:07 titan kernel: usb 2-6.2: New USB device found, idVendor=1f75, idProduct=0888
Jul 17 14:41:07 titan kernel: usb 2-6.2: New USB device strings: Mfr=4, Product=5, SerialNumber=6
Jul 17 14:41:07 titan kernel: usb 2-6.2: Product: IS888 USB bridge
Jul 17 14:41:07 titan kernel: usb 2-6.2: Manufacturer: Innostor
Jul 17 14:41:07 titan kernel: usb 2-6.2: SerialNumber: 088815678900000556
Jul 17 14:41:07 titan kernel: usb-storage 2-6.2:1.0: USB Mass Storage device detected
Jul 17 14:41:07 titan kernel: scsi host12: usb-storage 2-6.2:1.0
Jul 17 14:41:07 titan mtp-probe[2903]: checking bus 2, device 8: "/sys/devices/pci0000:00/0000:00:14.0/usb2/2-6/2-6.2"
Jul 17 14:41:07 titan mtp-probe[2903]: bus: 2, device: 8 was not an MTP device
Jul 17 14:41:10 titan kernel: scsi 12:0:0:0: Direct-Access     ST950042 0AS                   PQ: 0 ANSI: 0
Jul 17 14:41:10 titan kernel: sd 12:0:0:0: Attached scsi generic sg2 type 0
Jul 17 14:41:10 titan kernel: sd 12:0:0:0: [sdc] 976773168 512-byte logical blocks: (500 GB/465 GiB)
Jul 17 14:41:10 titan kernel: sd 12:0:0:0: [sdc] Write Protect is off
Jul 17 14:41:10 titan kernel: sd 12:0:0:0: [sdc] Mode Sense: 03 00 00 00
Jul 17 14:41:10 titan kernel: sd 12:0:0:0: [sdc] No Caching mode page found
Jul 17 14:41:10 titan kernel: sd 12:0:0:0: [sdc] Assuming drive cache: write through
Jul 17 14:41:10 titan kernel: xhci_hcd 0000:00:14.0: WARN Event TRB for slot 14 ep 2 with no TDs queued?
Jul 17 14:41:40 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:42:11 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:42:42 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:42:53 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:43:09 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:43:09 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:43:19 titan kernel: usb 2-6.2: reset SuperSpeed USB device number 8 using xhci_hcd
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: Device offlined - not ready after error recovery
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: [sdc] FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: [sdc] CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
Jul 17 14:43:19 titan kernel: blk_update_request: I/O error, dev sdc, sector 0
Jul 17 14:43:19 titan kernel: Buffer I/O error on dev sdc, logical block 0, async page read
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: ldm_validate_partition_table(): Disk read failed.
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: Dev sdc: unable to read RDB block 0
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: rejecting I/O to offline device
Jul 17 14:43:19 titan kernel:  sdc: unable to read partition table
Jul 17 14:43:19 titan kernel: sd 12:0:0:0: [sdc] Attached SCSI disk
Jul 17 14:43:19 titan systemd-udevd[496]: error: /dev/sdc: No such device or address


When kernel successfully recognizes the drive, it looks like this:

Jul 17 14:35:21 titan kernel: usb 2-6.2: new SuperSpeed USB device number 4 using xhci_hcd
Jul 17 14:35:21 titan kernel: usb 2-6.2: New USB device found, idVendor=1f75, idProduct=0888
Jul 17 14:35:21 titan kernel: usb 2-6.2: New USB device strings: Mfr=4, Product=5, SerialNumber=6
Jul 17 14:35:21 titan kernel: usb 2-6.2: Product: IS888 USB bridge
Jul 17 14:35:21 titan kernel: usb 2-6.2: Manufacturer: Innostor
Jul 17 14:35:21 titan kernel: usb 2-6.2: SerialNumber: 088815678900000556
Jul 17 14:35:21 titan mtp-probe[2313]: checking bus 2, device 4: "/sys/devices/pci0000:00/0000:00:14.0/usb2/2-6/2-6.2"
Jul 17 14:35:21 titan mtp-probe[2313]: bus: 2, device: 4 was not an MTP device
Jul 17 14:35:21 titan kernel: usb-storage 2-6.2:1.0: USB Mass Storage device detected
Jul 17 14:35:21 titan kernel: scsi host6: usb-storage 2-6.2:1.0
Jul 17 14:35:21 titan kernel: usbcore: registered new interface driver usb-storage
Jul 17 14:35:21 titan kernel: usbcore: registered new interface driver uas
Jul 17 14:35:24 titan kernel: scsi 6:0:0:0: Direct-Access     ST950042 0AS                   PQ: 0 ANSI: 0
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: Attached scsi generic sg2 type 0
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: [sdc] 976773168 512-byte logical blocks: (500 GB/465 GiB)
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: [sdc] Write Protect is off
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: [sdc] Mode Sense: 03 00 00 00
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: [sdc] No Caching mode page found
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: [sdc] Assuming drive cache: write through
Jul 17 14:35:24 titan kernel:  sdc: sdc1
Jul 17 14:35:24 titan kernel: sd 6:0:0:0: [sdc] Attached SCSI disk
Jul 17 14:35:25 titan udisksd[953]: Mounted /dev/sdc1 at /run/media/kparal/IcyBox on behalf of uid 1000
Jul 17 14:35:25 titan ntfs-3g[2334]: Version 2015.3.14 integrated FUSE 27
Jul 17 14:35:25 titan ntfs-3g[2334]: Mounted /dev/sdc1 (Read-Write, label "IcyBox", NTFS 3.1)
Jul 17 14:35:25 titan ntfs-3g[2334]: Cmdline options: rw,nodev,nosuid,uid=1000,gid=1000,uhelper=udisks2
Jul 17 14:35:25 titan ntfs-3g[2334]: Mount options: rw,nodev,nosuid,uhelper=udisks2,allow_other,nonempty,relatime,default_permissions,fsname=/dev/sdc1,blkdev,blksize=4096
Jul 17 14:35:25 titan ntfs-3g[2334]: Global ownership and permissions enforced, configuration type 1


If I use USB2 port, it always works. I can verify that the drive really
works in USB2/3 mode when it is attached to USB2/3 port (when it happens
to work), because it has a LED which glows red or blue depending on
USB2/3 mode. So I can say that USB3 port provides working USB3 mode and
transfer speeds, it just doesn't initialize always properly.

I tried the same hard-drive on different machines with USB3 ports,
and I don't have the same problem anywhere else - it works reliably. I
thought that could indicate a hardware issue. But then I tried running
Windows on that affected machine, and it works perfectly - no issues
with USB3. So this issue might be a combination of a kernel behavior
and a particular hardware.

There are a few more quirks to be mentioned, they might be related to
this:
* Sometimes when I disconnect the drive from a particular USB3 port
(regardless of whether it worked well or not), I can't use that port
again (with that hard drive) for some time. It is either based on some
time period, or maybe I have to use a different port in the mean time,
I'm not really sure. But it is quite common that if I connect the drive
to the same port shortly afterwards, nothing happens (no output in system
journal, no disk device created) - but the drive spins up and glows blue,
indicating USB3 mode. I have to use a different USB3 port. After a while,
it "fixes itself" and the port is usable again. 
* When I disconnect the drive not just by unmounting, but by "safely
ejecting" the drive in nautilus or gnome-disks (I assume it powers it down
or similar), it immediately spins back up and connect again, but this
time in USB2 mode instead of USB3 mode (red LED instead of blue). The
system mounts it again, thinking it was freshly connected. After I
"safely eject" it once more, it finally stays disconnected and I can
unplug it. This happens on all systems I tested with, but it doesn't
happen on Windows - it disconnects properly on the first try in there. I
assume it can be some kind of manufacturer quirk to fall back to USB2
if USB3 mode is problematic, and it kicks in on Linux even for standard
disconnect for some reason.


I'm running Fedora 22, with latest available kernel:
Linux titan 4.2.0-0.rc2.git1.1.fc23.x86_64 #1 SMP Wed Jul 15 16:09:32 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
kernel-4.2.0-0.rc2.git1.1.fc23.x86_64


Please tell me if I can provide you with further details to help you debug
this issue. Thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux