Horrid, Horrid! Handling of removable devices in Linux SUCKS!

It's all just too complicated, with a mess of kernel, udev, hal, gnome-
volume-manager, gnome-mount, cryptsetup...  Lets have a single
monolithic kernel-based routine for the whole lot!

[Sorry, I just had to let off steam there, I have spent so many
fruitless hours chasing this bug].

The following shows what happens when udev attempts to remove the device
corresponding to /dev/mapper/temporary-cryptsetup-XXXX.   I have added
some extra info() calls to udevd to see the details.  I list the entries
in "/dev/mapper" at the beginning of udev_device_event.  As you can see,
apparently it has been asked to remove a device which does not exist
(yet?) Therefore udev_device_event returns with an error code (-1), and
as a result the remove event is not passed up to HAL and the stale
device stays in the HAL database.

Is it possible there is some kind of race condition here? The file
/dev/mapper/temporary-cryptsetup-XXXX is created and then almost
immediately destroyed, but I would have thought there should be some
mechanism to ensure that the device node actually exists before the udev
event is run? Perhaps this is in fact a kernel or a udev bug.

Dec  3 14:57:18 pax udevd[2753]: udev_event_run: seq 2670 forked, pid [6052], 
'remove' 'block', 0 seconds old
Dec  3 14:57:18 pax udevd-event[6052]: udev_device_event: XXXX device node 
remove '/block/dm-0'
Dec  3 14:57:18 pax udevd-event[6052]: udev_device_event: XXXX name=''
Dec  3 14:57:18 pax udevd-event[6052]: udev_device_event: XXXX mapper entry 
'control' OK
Dec  3 14:57:18 pax udevd-event[6052]: udev_db_delete_device: XXXX 
udev_db_delete_device running for '/dev/.udev/db/\x2fblock\x2fdm-0'
Dec  3 14:57:18 pax udevd-event[6052]: name_index: removing index: 
'/dev/.udev/names/mapper\x2ftemporary-cryptsetup-6028/\x2fblock\x2fdm-0'
Dec  3 14:57:18 pax udevd-event[6052]: name_index: removing index: 
'/dev/.udev/names/disk\x2fby-id\x2fdm-name-temporary-cryptsetup-6028/\x2fblock\x2fdm-0'
Dec  3 14:57:18 pax udevd-event[6052]: udev_db_delete_device: XXXX 
udev_db_delete_device finished for '/dev/.udev/db/\x2fblock\x2fdm-0'
Dec  3 14:57:18 pax udevd-event[6052]: udev_node_remove: XXXX remove 
'/dev/mapper/temporary-cryptsetup-6028'
Dec  3 14:57:18 pax udevd-event[6052]: udev_node_remove: XXXX device node 
'/dev/mapper/temporary-cryptsetup-6028' not found
Dec  3 14:57:18 pax udevd-event[6052]: udev_device_event: XXXX udev_node_remove 
returned -1
Dec  3 14:57:18 pax udevd-event[6052]: udev_node_update_symlinks: update 
symlink 'disk/by-id/dm-name-temporary-cryptsetup-6028' of '/block/dm-0'
Dec  3 14:57:18 pax udevd-event[6052]: udev_db_get_devices_by_name: no index 
directory 
'/dev/.udev/names/disk\x2fby-id\x2fdm-name-temporary-cryptsetup-6028': No such 
file or directory
Dec  3 14:57:18 pax udevd-event[6052]: update_link: found -1 devices with name 
'disk/by-id/dm-name-temporary-cryptsetup-6028'
Dec  3 14:57:18 pax udevd-event[6052]: update_link: no reference left, remove 
'disk/by-id/dm-name-temporary-cryptsetup-6028'
Dec  3 14:57:18 pax udevd-event[6052]: udev_event_process: XXXX 
udev_device_event returned -1, ignore=0, run=1
Dec  3 14:57:18 pax udevd-event[6052]: udev_event_run: seq 2670 finished
Dec  3 14:57:18 pax udevd[2753]: udev_done: seq 2670, pid [6052] exit with 1, 0 
seconds old

-- 
mounting Luks encrypted USB-HDD does not work reliably
https://bugs.launchpad.net/bugs/148003
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to