vol_id takes way too long to finish on unavailable SCSI devices
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
udev (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
root@cuba:~# time /lib/udev/vol_id --export /dev/sdb
real 1m36.796s
user 0m0.000s
sys 0m0.000s
/dev/sdb represents a path to a passive controller on a Sun StorageTek 6140, and are to be handled by dm-multipath. All I/O to the paths to the passive controller will fail until the volume is relocated to it (and at that point the formerly active controller will fail all I/O in the same manner).
This is logged during the vol_id run:
Oct 23 12:30:17 cuba kernel: [11390.027649] end_request: I/O error, dev sdb, sector 157286272
Oct 23 12:30:17 cuba kernel: [11390.039112] Buffer I/O error on device sdb, logical block 19660784
Oct 23 12:30:20 cuba kernel: [11393.044316] end_request: I/O error, dev sdb, sector 157286392
Oct 23 12:30:20 cuba kernel: [11393.055779] Buffer I/O error on device sdb, logical block 19660799
Oct 23 12:30:23 cuba kernel: [11396.061094] end_request: I/O error, dev sdb, sector 157286392
Oct 23 12:30:23 cuba kernel: [11396.072553] Buffer I/O error on device sdb, logical block 19660799
Oct 23 12:30:26 cuba kernel: [11399.079500] end_request: I/O error, dev sdb, sector 157286392
Oct 23 12:30:26 cuba kernel: [11399.090957] Buffer I/O error on device sdb, logical block 19660799
Oct 23 12:30:29 cuba kernel: [11402.113530] end_request: I/O error, dev sdb, sector 157286392
Oct 23 12:30:29 cuba kernel: [11402.124993] Buffer I/O error on device sdb, logical block 19660799
Oct 23 12:30:32 cuba kernel: [11405.130144] end_request: I/O error, dev sdb, sector 157286392
Oct 23 12:30:32 cuba kernel: [11405.141602] Buffer I/O error on device sdb, logical block 19660799
Oct 23 12:30:35 cuba kernel: [11408.148862] end_request: I/O error, dev sdb, sector 157286336
Oct 23 12:30:35 cuba kernel: [11408.160345] Buffer I/O error on device sdb, logical block 19660792
Oct 23 12:30:38 cuba kernel: [11411.167363] end_request: I/O error, dev sdb, sector 157286384
Oct 23 12:30:38 cuba kernel: [11411.178824] Buffer I/O error on device sdb, logical block 19660798
Oct 23 12:30:41 cuba kernel: [11414.186536] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:41 cuba kernel: [11414.196612] Buffer I/O error on device sdb, logical block 0
Oct 23 12:30:44 cuba kernel: [11417.202231] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:44 cuba kernel: [11417.212306] Buffer I/O error on device sdb, logical block 0
Oct 23 12:30:47 cuba kernel: [11420.219020] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:47 cuba kernel: [11420.229103] Buffer I/O error on device sdb, logical block 0
Oct 23 12:30:50 cuba kernel: [11423.237633] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:50 cuba kernel: [11423.247706] Buffer I/O error on device sdb, logical block 0
Oct 23 12:30:53 cuba kernel: [11426.255198] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:53 cuba kernel: [11426.265270] Buffer I/O error on device sdb, logical block 0
Oct 23 12:30:56 cuba kernel: [11429.271366] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:56 cuba kernel: [11429.281440] Buffer I/O error on device sdb, logical block 0
Oct 23 12:30:59 cuba kernel: [11432.286377] end_request: I/O error, dev sdb, sector 0
Oct 23 12:30:59 cuba kernel: [11432.296453] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:02 cuba kernel: [11435.301055] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:02 cuba kernel: [11435.311128] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:05 cuba kernel: [11438.315190] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:05 cuba kernel: [11438.325260] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:08 cuba kernel: [11441.348733] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:08 cuba kernel: [11441.358805] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:11 cuba kernel: [11444.363694] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:11 cuba kernel: [11444.373771] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:14 cuba kernel: [11447.408236] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:14 cuba kernel: [11447.418309] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:17 cuba kernel: [11450.434998] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:17 cuba kernel: [11450.445073] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:20 cuba kernel: [11453.448893] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:20 cuba kernel: [11453.458965] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:23 cuba kernel: [11456.464670] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:23 cuba kernel: [11456.474741] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:26 cuba kernel: [11459.486188] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:29 cuba kernel: [11462.496979] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:29 cuba kernel: [11462.507052] printk: 1 messages suppressed.
Oct 23 12:31:29 cuba kernel: [11462.507055] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:33 cuba kernel: [11465.511830] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:33 cuba kernel: [11465.521906] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:36 cuba kernel: [11468.534604] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:39 cuba kernel: [11471.538092] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:39 cuba kernel: [11471.548187] printk: 1 messages suppressed.
Oct 23 12:31:39 cuba kernel: [11471.548189] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:42 cuba kernel: [11474.556949] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:45 cuba kernel: [11477.559427] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:45 cuba kernel: [11477.569498] printk: 1 messages suppressed.
Oct 23 12:31:45 cuba kernel: [11477.569499] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:48 cuba kernel: [11480.588067] end_request: I/O error, dev sdb, sector 0
Oct 23 12:31:48 cuba kernel: [11480.598138] Buffer I/O error on device sdb, logical block 0
Oct 23 12:31:51 cuba kernel: [11483.601854] end_request: I/O error, dev sdb, sector 0
Compare this to a fdisk test to the same device:
root@cuba:~# time fdisk -l /dev/sdb
real 0m3.052s
user 0m0.000s
sys 0m0.000s
The logs contains only:
Oct 23 12:34:09 cuba kernel: [11621.914630] end_request: I/O error, dev sdb, sector 0
Oct 23 12:34:09 cuba kernel: [11621.924707] Buffer I/O error on device sdb, logical block 0
Now, a 90 second delay might be acceptable, but it's not unusual to have many paths to many volumes, and half of these will normally be inaccessible. I have a server here that takes AGES to boot because of this - it has got 28 such passive paths visible, and udev/vol_id has to time out on all of them. The math is easy.
Tore
Changed in udev: | |
status: | Confirmed → Fix Committed |
Kay: any thoughts?