cd-tray immediately closed after it has been opened

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

A very annoying bug has been introduced in udev release 121:

In some distribution it is not possible to eject a CD or DVD anymore, because the cd tray is immediately closed after it has been opened:

http://bugs.gentoo.org/show_bug.cgi?id=230886
https://bugzilla.redhat.com/show_bug.cgi?id=453095


We have tracked down the problem:

udev 120: works
udev > 121: problem occurs

The following checkin introduced the odd behaviour:
41677cf51fb2c14aa512ecf9410e43eb35560408
"persistent device naming: also read unpartitioned media"
with the following change in 60-persistent-storage.rules:
----------------------------------------------------------
+# import filesystem metadata
+IMPORT{program}="vol_id --export $tempnode"
----------------------------------------------------------

The following happens:

- the CD is ejected (by user)
- a change event is generated:
UDEV [1217184249.757495] change /devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/block/sr0 (block)
- the rule above triggers the execution of "vol_id --export ...sr0"
- vol_id opens the device with open(2), which causes the cd tray to be closed

Before this checkin, vol_id was only called for partitioned devices and so the CD tray stayed open.


I'm not an expert in writing udev rules, but I'm using now the following workaround:

diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
index 5ae0c7f..95eb1fd 100644
--- a/rules/rules.d/60-persistent-storage.rules
+++ b/rules/rules.d/60-persistent-storage.rules
@@ -52,6 +52,7 @@ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PA

# skip unpartitioned removable media devices from drivers which do not send "change" events ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end" +ENV{DEVTYPE}=="disk", KERNEL=="sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"

# import filesystem metadata
IMPORT{program}="vol_id --export $tempnode"


If this patch is used, the vol_id call is omitted for sr* devices.

Sure, a drawback is, that you loose the "disk/by-label" link for CDs, but IMHO these features are mainly targetted for USB hard drives or something like this.


Best regards,
Christian Krause <chkr@xxxxxxxxxxx>
Ronald Wahl <rwahl@xxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux