Bug 6395

Summary: floppy mounts and umounts are not detected
Product: hal Reporter: Modestas Vainius <geromanas>
Component: haldAssignee: David Zeuthen (not reading bugmail) <zeuthen>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: high CC: bugzilla, paul, sergio
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Modestas Vainius 2006-03-26 05:51:51 UTC
Hello,

steps to reproduce:

1) start hal-device-manager
2) insert a floppy into fd0
3) execute mount /media/floppy0
4) as seen by the hal-device-manager output, nothing happens, i.e. device 
state does not change neither a new volume gets added. --verbose=yes output 
reveales, that blockdev.c:blockdev_refresh_mount_state does not find a volume 
for floppy:

20:44:40.171 [I] blockdev.c:214: * found mounts dev /dev/fd0 (2:0)
20:44:40.171 [I] blockdev.c:225:   
match /org/freedesktop/Hal/devices/volume_uuid_E8C2_7995 (8:17)
20:44:40.171 [I] blockdev.c:225:   
match /org/freedesktop/Hal/devices/volume_uuid_4074A19974A19268 (8:7)
20:44:40.171 [I] blockdev.c:225:   
match /org/freedesktop/Hal/devices/volume_uuid_f0dead24_1832_4e65_81ee_864bbe26d00a 
(8:5)
20:44:40.171 [I] blockdev.c:225:   
match /org/freedesktop/Hal/devices/volume_part4_size_1024 (8:4)
20:44:40.171 [I] blockdev.c:225:   
match /org/freedesktop/Hal/devices/volume_label_Movies (22:64)
20:44:40.171 [I] blockdev.c:252: 
set /org/freedesktop/Hal/devices/volume_uuid_E8C2_7995 to unmounted
20:44:40.171 [I] blockdev.c:252: 
set /org/freedesktop/Hal/devices/volume_uuid_4074A19974A19268 to unmounted
20:44:40.171 [I] blockdev.c:252: 
set /org/freedesktop/Hal/devices/volume_uuid_f0dead24_1832_4e65_81ee_864bbe26d00a 
to unmounted
20:44:40.171 [I] blockdev.c:252: 
set /org/freedesktop/Hal/devices/volume_part4_size_1024 to unmounted
20:44:40.171 [I] blockdev.c:252: 
set /org/freedesktop/Hal/devices/volume_label_Movies to unmounted
 
As per http://lists.freedesktop.org/archives/hal/2004-June/000470.html, "we 
only put a child to the top-level block device if it is mounted." But this 
does not happen. As a result, we have such bugs as 
http://bugs.kde.org/show_bug.cgi?id=120619 Relevant code on 
http://websvn.kde.org/branches/KDE/3.5/kdebase/kioslave/media/mediamanager/halbackend.cpp?rev=495057&view=markup 
function void HALBackend::setFloppyProperties(Medium* medium). IIRC, hal 0.4.8 
worked fine with this code.

I'm not a KDE developer neither I have experience with HAL developement. 
However, monitoring hal events I suspect that the problem is a regression in 
hal 0.5.7 (or whole 0.5.x series; at least I don't remember it working with 
any 0.5.x version debian unstable had) rather than the bug in KDE code.

Distribution: Debian unstable (kernels 2.6.15-1-amd64-k8 and 
2.6.16-1-amd64-k8)
ii  dbus                             0.61-4
ii  hal                              0.5.7-1
ii  udev                             0.087-1

Relevant lshal output:

udi = '/org/freedesktop/Hal/devices/platform_floppy_0'
  info.udi = '/org/freedesktop/Hal/devices/platform_floppy_0'  (string)
  linux.subsystem = 'platform'  (string)
  linux.hotplug_type = 1  (0x1)  (int)
  info.product = 'Platform Device (floppy.0)'  (string)
  platform.id = 'floppy.0'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.bus = 'platform'  (string)
  linux.sysfs_path_device = '/sys/devices/platform/floppy.0'  (string)
  linux.sysfs_path = '/sys/devices/platform/floppy.0'  (string)

udi = '/org/freedesktop/Hal/devices/platform_floppy_0_storage'
  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 
'nodiratime', 'noexec', 'quiet', 'utf8', 'shortname=', 'codepage=', 
'iocharset=', 'umask=', 'uid='} (stringlist)
  org.freedesktop.Hal.Device.Volume.method_execpaths = 
{'hal-system-storage-mount', 'hal-system-storage-unmount', 
'hal-system-storage-eject'} (string list)  
org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} 
(string list)
  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 
'Eject'} (string list)
  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
  block.storage_device = 
'/org/freedesktop/Hal/devices/platform_floppy_0_storage'  (string)
  info.udi = 
'/org/freedesktop/Hal/devices/platform_floppy_0_storage'  (string)
  info.capabilities = {'storage', 'block'} (string list)
  info.category = 'storage'  (string)
  storage.requires_eject = false  (bool)
  storage.hotpluggable = false  (bool)
  storage.removable = true  (bool)
  storage.physical_device = 
'/org/freedesktop/Hal/devices/platform_floppy_0'  (string)
  storage.drive_type = 'floppy'  (string)
  info.product = 'PC Floppy Drive'  (string)
  info.vendor = ''  (string)
  storage.vendor = 'PC Floppy Drive'  (string)
  storage.model = ''  (string)
  storage.automount_enabled_hint = true  (bool)
  storage.media_check_enabled = false  (bool)
  storage.no_partitions_hint = true  (bool)
  storage.bus = 'platform'  (string)
  block.is_volume = false  (bool)
  block.minor = 0  (0x0)  (int)
  block.major = 2  (0x2)  (int)
  block.device = '/dev/fd0'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  info.parent = '/org/freedesktop/Hal/devices/platform_floppy_0'  (string)
  linux.sysfs_path_device = '/sys/block/fd0'  (string)
  linux.sysfs_path = '/sys/block/fd0'  (string)
Comment 1 Jose Medellin 2006-03-26 08:05:18 UTC
Hi.  
 
I'm a gentoo user experiencing the same problem. 
 
And I'm not alone: 
http://forums.gentoo.org/viewtopic-p-3207734.html#3207734 
 
Also, to let you know that I've tried different versions of DBUS thinking that 
may be it (0.50 and 0.60) but the same result happened.  If any extra debug 
info is needed (I think Modestas' description was a really good one!), I'd be 
glad to help 
Comment 2 Heavy 2006-03-26 22:13:52 UTC
I think this is a KDE 3.5.1 bug, because I have all working great with KDE 
3.4.2, but in KDE 3.5.1 I used to have the same problem with floppy.  
Comment 3 Modestas Vainius 2006-03-26 22:28:03 UTC
KDE 3.4.2 did not support hal 0.5.x, only 0.4.x As I've stated, I think this 
bug is a *regression* (from at least 0.4.8) in hal 0.5.7 or whole 0.5.x 
series. If I remember correctly, KDE 3.5.0 compiled against hal 0.4.8 worked 
fine.

This bug with floppy is getting really old now and is very annoying. For 
months nobody has solved it so I decided to have a look at it myself.
Comment 4 Heavy 2006-03-27 02:42:02 UTC
I'm sure you know what you have said, but i have HAL 0.5.4 installed with KDE 
3.4.2 from BOX working fine =). And I think that nobody knows how to solve this 
problem, so we must wait for the next version of KDE. 
Comment 5 ismail ( cartman ) donmez 2006-03-27 03:41:44 UTC
(In reply to comment #4)
> I'm sure you know what you have said, but i have HAL 0.5.4 installed with KDE 
> 3.4.2 from BOX working fine =). And I think that nobody knows how to solve this 
> problem, so we must wait for the next version of KDE. 

This is still not working in KDE 3.5.2 .
Comment 6 Modestas Vainius 2006-03-27 03:53:45 UTC
Reply to comment #4

Read this:
http://wiki.kde.org/tiki-index.php?page=DBUS

Thus kde 3.4.x does not support HAL >= 0.5.x (unless you have patched kde 
3.4.x like in ubuntu breezy). Still, having kde 3.4 and hal 0.5.x installed 
side-by-side is OK, but your kde can't use hal backend then. Thus it's 
probably using legacy fstab backend to detect mounts/umounts (which works).
Comment 7 Heavy 2006-03-27 16:09:52 UTC
OK, maybe. I'm not using penguin so long but I know that when KDE using or not 
hal backend, and I'm sure that my KDE 3.4.2 using hal backend because I can 
use my usb removable drives through KDE, but they ARE NOT in fstab, only HAL 
knows about them. And I repeat: KDE 3.4 and HAL 0.5.4 are from SuSE 10 BOX. 
Comment 8 David Zeuthen (not reading bugmail) 2006-03-28 14:31:38 UTC
Hi,

Yes, this used to work in HAL 0.4.x but it was deliberately changed in the 0.5.x
so we don't put child device object only when something was mounted. The
reasoning was that it was inconsistent and caused more trouble...

So.. you need to teach the desktop stack about this - as a data point it works
in gnome-vfs 2.14 / gnome-mount 0.4. 

Btw, it applies to more than floppy drives... also other drives we cannot poll,
e.g. IDE Zip drives. More precisly this happens when

 storage.media_check_enabled = FALSE

Hope this helps. I'm closing this as NOTABUG as it was a deliberate change from
0.4.x. Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.