[regression] task bcache_register blocked
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Invalid
|
High
|
Unassigned | ||
Trusty |
Fix Released
|
High
|
Kamal Mostafa |
Bug Description
On boot with bcache-tools installed and bcache configured.
OK: 3.13.0-78.122
BAD: 3.13.0-80.124
BAD: 3.13.11-
[ 492.780491] INFO: task bcache-
[ 492.780648] Not tainted 3.13.11-
[ 492.780782] "echo 0 > /proc/sys/
[ 492.780943] bcache-register D 0000000000000000 0 1677 1 0x00000004
[ 492.780951] ffff8800882a7d70 0000000000000286 ffff880002cb3000 0000000000013180
[ 492.780960] ffff8800882a7fd8 0000000000013180 ffff880002cb3000 ffffffffa00cd840
[ 492.780970] ffffffffa00cd844 ffff880002cb3000 00000000ffffffff ffffffffa00cd848
[ 492.780980] Call Trace:
[ 492.780994] [<ffffffff8171a
[ 492.781003] [<ffffffff8171c
[ 492.781015] [<ffffffff8171c
[ 492.781040] [<ffffffffa00bb
[ 492.781048] [<ffffffff81721
[ 492.781058] [<ffffffff8117f
[ 492.781067] [<ffffffff8135a
[ 492.781075] [<ffffffff81231
[ 492.781084] [<ffffffff811bb
[ 492.781093] [<ffffffff811bc
[ 492.781102] [<ffffffff81726
[ 612.779211] INFO: task bcache_writebac:532 blocked for more than 120 seconds.
[ 612.779309] Not tainted 3.13.11-
[ 612.779384] "echo 0 > /proc/sys/
[ 612.779495] bcache_writebac D 0000000000000000 0 532 2 0x00000000
[ 612.779508] ffff8800865d9eb8 0000000000000246 ffff880086608000 0000000000013180
[ 612.779521] ffff8800865d9fd8 0000000000013180 ffff880086608000 ffff880002899440
[ 612.779532] ffff880086790000 ffffffffa00b2840 0000000000000000 0000000000000000
[ 612.779543] Call Trace:
[ 612.779594] [<ffffffffa00b2
[ 612.779611] [<ffffffff81719
[ 612.779624] [<ffffffff8108a
[ 612.779633] [<ffffffff8108a
[ 612.779644] [<ffffffff81726
[ 612.779653] [<ffffffff8108a
CVE References
Changed in linux (Ubuntu Trusty): | |
status: | In Progress → Fix Committed |
The problem is likely caused by:
[trusty] 5d2f571 bcache: allows use of register in udev to avoid "device_busy" error. &bch_register_ lock) twice.
... which introduces a code path that calls mutex_unlock(
Another mainline commit (added in Linux v3.15, but not marked cc: stable) removes one of the unlocks, and is likely the fix we need for trusty and 3.13-stable:
[mainline] 4fa0340 bcache: Fix a lockdep splat in an error path