Re: [Bugme-new] [Bug 8692] New: USB storage freeze

Andrew Morton <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On Sat, 30 Jun 2007 08:46:32 -0700 (PDT) [email protected] wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=8692
> 
>            Summary: USB storage freeze
>            Product: IO/Storage
>            Version: 2.5
>      KernelVersion: 2.6.21
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Other
>         AssignedTo: [email protected]
>         ReportedBy: [email protected]
> 
> 
> Most recent kernel where this bug did not occur: unknown
> Distribution: Debian/sid
> Hardware Environment: AMD 64 X2, external 200GB USB disk (Prolific Technology
> Inc)
> Software Environment: 2.6.21 #3 SMP Sat Jun 30 16:30:03 CEST 2007 x86_64
> GNU/Linux
> Problem Description:
> 
> When doing file transfer, USB storage freezes randomly. It's possible that my
> USB drive is low quality hardware, but this shouldn't freeze the USB bus.
> 
> At this point, all I/O to USB are blocked:
> - I can mount another USB disk
> - sync blocks
> - reboot blocks
> - only reset button works to unlock the disks.
> 
> I've seen this problem also on Debian's kernel 2.6.18
> 
> I've reproduced it on a vanilla kernel (built with make-kpkg) with usb debug
> enabled. (traces are below)
> 
> 
> Steps to reproduce:
> 
> A simple cp of a multi GB file is often enough. (note that my disk if 90% full)
> 
> You can also run find <usb-drive> -type f -exec md5sum {} \;
> 
> Traces:
> Jun 30 17:21:30 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:21:30 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:21:30 gandalf kernel: usb-storage: Command WRITE_10 (10 bytes)
> Jun 30 17:21:30 gandalf kernel: usb-storage:  2a 00 0c d9 01 87 00 00 f0 00
> Jun 30 17:21:30 gandalf kernel: usb-storage: Bulk Command S 0x43425355 T 0x4297
> L 122880 F 0 Trg 0 LUN 0 CL 10
> Jun 30 17:21:30 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 31 bytes
> Jun 30 17:21:30 gandalf kernel: usb-storage: Status code 0; transferred 31/31
> Jun 30 17:21:30 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:21:30 gandalf kernel: usb-storage: Bulk command transfer result=0
> Jun 30 17:21:30 gandalf kernel: usb-storage: usb_stor_bulk_transfer_sglist:
> xfer 122880 bytes, 17 entries
> Jun 30 17:21:30 gandalf kernel: usb-storage: Status code 0; transferred
> 122880/122880
> Jun 30 17:21:30 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:21:30 gandalf kernel: usb-storage: Bulk data transfer result 0x0
> Jun 30 17:21:30 gandalf kernel: usb-storage: Attempting to get CSW...
> Jun 30 17:21:30 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 13 bytes
> Jun 30 17:21:30 gandalf kernel: usb-storage: Status code 0; transferred 13/13
> Jun 30 17:21:30 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:21:30 gandalf kernel: usb-storage: Bulk status result = 0
> Jun 30 17:21:30 gandalf kernel: usb-storage: Bulk Status S 0x53425355 T 0x4297
> R 0 Stat 0x0
> Jun 30 17:21:30 gandalf kernel: usb-storage: scsi cmd done, result=0x0
> Jun 30 17:21:30 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:21:30 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:21:30 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:21:30 gandalf kernel: usb-storage: Command WRITE_10 (10 bytes)
> Jun 30 17:21:30 gandalf kernel: usb-storage:  2a 00 0c d9 02 77 00 00 f0 00
> Jun 30 17:21:30 gandalf kernel: usb-storage: Bulk Command S 0x43425355 T 0x4298
> L 122880 F 0 Trg 0 LUN 0 CL 10
> Jun 30 17:21:30 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 31 bytes
> Jun 30 17:22:00 gandalf kernel: usb-storage: command_abort called
> Jun 30 17:22:00 gandalf kernel: usb-storage: usb_stor_stop_transport called
> Jun 30 17:22:00 gandalf kernel: usb-storage: -- cancelling URB
> 
> At this point the external disk is frozen.
> 
> Then I've powered on another USB disk:
> 
> Jun 30 17:24:34 gandalf kernel: hub 6-0:1.0: state 7 ports 10 chg 0000 evt 0008
> Jun 30 17:24:34 gandalf kernel: ehci_hcd 0000:00:13.5: GetStatus port 3 status
> 001803 POWER sig=j CSC CONNECT
> Jun 30 17:24:34 gandalf kernel: hub 6-0:1.0: port 3, status 0501, change 0001,
> 480 Mb/s
> Jun 30 17:24:34 gandalf kernel: hub 6-0:1.0: debounce: port 3: total 100ms
> stable 100ms status 0x501
> Jun 30 17:24:34 gandalf kernel: ehci_hcd 0000:00:13.5: port 3 high speed
> Jun 30 17:24:34 gandalf kernel: ehci_hcd 0000:00:13.5: GetStatus port 3 status
> 001005 POWER sig=se0 PE CONNECT
> Jun 30 17:24:34 gandalf kernel: usb 6-3: new high speed USB device using
> ehci_hcd and address 3
> Jun 30 17:24:34 gandalf kernel: ehci_hcd 0000:00:13.5: port 3 high speed
> Jun 30 17:24:34 gandalf kernel: ehci_hcd 0000:00:13.5: GetStatus port 3 status
> 001005 POWER sig=se0 PE CONNECT
> Jun 30 17:24:34 gandalf kernel: ehci_hcd 0000:00:13.5: qh ffff81003d90d280
> (#00) state 4
> Jun 30 17:24:34 gandalf kernel: usb 6-3: default language 0x0409
> Jun 30 17:24:34 gandalf kernel: usb 6-3: new device strings: Mfr=1, Product=2,
> SerialNumber=3
> Jun 30 17:24:34 gandalf kernel: usb 6-3: Product: Mass Storage Device
> Jun 30 17:24:34 gandalf kernel: usb 6-3: Manufacturer: Prolific Technology Inc.
> Jun 30 17:24:34 gandalf kernel: usb 6-3: SerialNumber: 0
> Jun 30 17:24:34 gandalf kernel: usb 6-3: uevent
> Jun 30 17:24:34 gandalf kernel: usb 6-3: usb_probe_device
> Jun 30 17:24:34 gandalf kernel: usb 6-3: configuration #1 chosen from 1 choice
> Jun 30 17:24:34 gandalf kernel: usb 6-3: adding 6-3:1.0 (config #1, interface
> 0)
> Jun 30 17:24:34 gandalf kernel: usb 6-3:1.0: uevent
> Jun 30 17:24:34 gandalf kernel: usb-storage 6-3:1.0: usb_probe_interface
> Jun 30 17:24:34 gandalf kernel: usb-storage 6-3:1.0: usb_probe_interface - got
> id
> Jun 30 17:24:34 gandalf kernel: usb-storage: USB Mass Storage device detected
> Jun 30 17:24:34 gandalf kernel: usb-storage: -- associate_dev
> Jun 30 17:24:34 gandalf kernel: usb-storage: Vendor: 0x067b, Product: 0x2507,
> Revision: 0x0100
> Jun 30 17:24:34 gandalf kernel: usb-storage: Interface Subclass: 0x06,
> Protocol: 0x50
> Jun 30 17:24:34 gandalf kernel: usb-storage: Transport: Bulk
> Jun 30 17:24:34 gandalf kernel: usb-storage: Protocol: Transparent SCSI
> Jun 30 17:24:34 gandalf kernel: scsi6 : SCSI emulation for USB Mass Storage
> devices
> Jun 30 17:24:34 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:34 gandalf kernel: drivers/usb/core/inode.c: creating file '003'
> Jun 30 17:24:34 gandalf kernel: usb-storage: device found at 3
> Jun 30 17:24:34 gandalf kernel: usb-storage: waiting for device to settle
> before scanning
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_control_msg: rq=fe
> rqtype=a1 value=0000 index=00 len=1
> Jun 30 17:24:39 gandalf kernel: usb-storage: GetMaxLUN command result is 1,
> data is 0
> Jun 30 17:24:39 gandalf kernel: usb-storage: device scan complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Command INQUIRY (6 bytes)
> Jun 30 17:24:39 gandalf kernel: usb-storage:  12 00 00 00 24 00
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Command S 0x43425355 T 0x1 L
> 36 F 128 Trg 0 LUN 0 CL 6
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 31 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 31/31
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk command transfer result=0
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_sglist:
> xfer 36 bytes, 1 entries
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 36/36
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk data transfer result 0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: Attempting to get CSW...
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 13 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 13/13
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk status result = 0
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Status S 0x53425355 T 0x1 R 0
> Stat 0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: scsi 6:0:0:0: Direct-Access     ST316002 3A    
>           3.06 PQ: 0 ANSI: 0
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad LUN (0:1)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (1:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (2:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (3:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (4:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (5:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (6:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bad target number (7:0)
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x40000
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Command TEST_UNIT_READY (6 bytes)
> Jun 30 17:24:39 gandalf kernel: usb-storage:  00 00 00 00 00 00
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Command S 0x43425355 T 0x2 L
> 0 F 0 Trg 0 LUN 0 CL 6
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 31 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 31/31
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk command transfer result=0
> Jun 30 17:24:39 gandalf kernel: usb-storage: Attempting to get CSW...
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 13 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 13/13
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk status result = 0
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Status S 0x53425355 T 0x2 R 0
> Stat 0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Command READ_CAPACITY (10 bytes)
> Jun 30 17:24:39 gandalf kernel: usb-storage:  25 00 00 00 00 00 00 00 00 00
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Command S 0x43425355 T 0x3 L
> 8 F 128 Trg 0 LUN 0 CL 10
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 31 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 31/31
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk data transfer result 0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: Attempting to get CSW...
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 13 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 13/13
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk status result = 0
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Status S 0x53425355 T 0x3 R 0
> Stat 0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: scsi cmd done, result=0x0
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread sleeping.
> Jun 30 17:24:39 gandalf kernel: SCSI device sde: 312581807 512-byte hdwr
> sectors (160042 MB)
> Jun 30 17:24:39 gandalf kernel: usb-storage: queuecommand called
> Jun 30 17:24:39 gandalf kernel: usb-storage: *** thread awakened.
> Jun 30 17:24:39 gandalf kernel: usb-storage: Command MODE_SENSE (6 bytes)
> Jun 30 17:24:39 gandalf kernel: usb-storage:  1a 00 3f 00 c0 00
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk Command S 0x43425355 T 0x4 L
> 192 F 128 Trg 0 LUN 0 CL 6
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 31 bytes
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code 0; transferred 31/31
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- transfer complete
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk command transfer result=0
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_sglist:
> xfer 192 bytes, 1 entries
> Jun 30 17:24:39 gandalf kernel: usb-storage: Status code -121; transferred
> 4/192
> Jun 30 17:24:39 gandalf kernel: usb-storage: -- short read transfer
> Jun 30 17:24:39 gandalf kernel: usb-storage: Bulk data transfer result 0x1
> Jun 30 17:24:39 gandalf kernel: usb-storage: Attempting to get CSW...
> Jun 30 17:24:39 gandalf kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer
> 13 bytes
> Jun 30 17:25:09 gandalf kernel: usb-storage: command_abort called
> Jun 30 17:25:09 gandalf kernel: usb-storage: usb_stor_stop_transport called
> Jun 30 17:25:09 gandalf kernel: usb-storage: -- cancelling URB
> 
> Then the second USB disk does not show up in /dev/disk.
> 
> Feel free to contact me if you need more informations.
> 
> Thanks
> 
> 
> -- 
> Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.