[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-usb-devel
Subject:    Re: [linux-usb-devel] [Bugme-new] [Bug 8692] New: USB storage freeze
From:       Andrew Morton <akpm () linux-foundation ! org>
Date:       2007-06-30 16:38:38
Message-ID: 20070630093838.ddbf7d1b.akpm () linux-foundation ! org
[Download RAW message or body]

On Sat, 30 Jun 2007 08:46:32 -0700 (PDT) bugme-daemon@bugzilla.kernel.org 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: io_other@kernel-bugs.osdl.org
>         ReportedBy: domi.dumont@free.fr
> 
> 
> 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/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic