FS#38508 - [linux] xhci_hcd produces millions of error messages when writing to encrypted USB disk

Attached to Project: Arch Linux
Opened by Zhuoyun Wei (wzyboy) - Tuesday, 14 January 2014, 15:51 GMT
Last edited by Tobias Powalowski (tpowa) - Tuesday, 14 January 2014, 17:41 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

I have a LUKS-encrypted USB drive. In recent version of kernel, if I write anything > 32 KiB into the mapped block device, xhci_hcd will produce millions of error messages (see attachment). I mean "millions of" because these messages take up 1.9 GiB disk space in systemd journal in just a few minutes.

Tests I've done:

* Writing anything < 32 KiB to mapped device works:
dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=30 (-> good)
dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=31 (-> good)
dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=32 (-> good)
* Writing anything > 32 KiB to mapper device freezes the process:
dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=33 (-> died)
mkfs.ext4 /dev/mapper/luks-data0 (-> died)
dd_rescue ~/bar.mkv /dev/mapper/luks-data0 (-> died)

("died" means the process freezes, millions of error messages are produced and the only thing I could do to stop this crazy thing is to pull out my USB drive or long-press the power key to shut down my computer.)

I am using linux 3.12.7. I boot my system up with Arch installation media 2013.10, which uses linux 3.11.2, and the bug does not occur:

(In Arch live USB with linux 3.11.2)
* dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=10000 (-> good)
* mkfs.ext4 /dev/mapper/luks-data0 (-> good)

So this should be a bug brought between 3.11.2 and 3.12.7.


Additional info:
* package version(s)
linux 3.12.7-2
cryptsetup 1.6.3-2
device-mapper 2.02.104-1
* config and/or log files etc.
see attachment


Steps to reproduce:
* cryptsetup luksOpen /dev/sdb1 luks-data0
* dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=30 (-> good)
* dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=31 (-> good)
* dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=32 (-> good)
* dd if=/dev/zero of=/dev/mapper/luks-data0 bs=1K count=33 (-> died)
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Tuesday, 14 January 2014, 17:41 GMT
Reason for closing:  Upstream
Comment by Tobias Powalowski (tpowa) - Tuesday, 14 January 2014, 16:59 GMT
You need to take this upstream.

Loading...