After an upgrade to intrepid, HAL prefers old fdi-cache to new FDI files

Bug #275825 reported by Jonathan Riddell
6
Affects Status Importance Assigned to Milestone
hal (Debian)
Fix Released
Unknown
hal (Ubuntu)
Fix Released
High
Martin Pitt
Intrepid
Fix Released
High
Martin Pitt

Bug Description

After and upgrade from a fresh hardy installation to intrepid, there are changes under /usr/share/hal/fdi/policy, but hald seems to prefer the old information in /var/cache/hald/fdi-cache: it only seems to stat() most of the FDI files without ever reading them.

This causes X not to find any input devices, since they are missing input.x11_driver, which would have been set by /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi.

Deleting /var/cache/hald/fdi-cache makes X work again.

Tags: upgrade
Revision history for this message
Jonathan Riddell (jr) wrote :
Revision history for this message
Bryce Harrington (bryce) wrote :

Riddell adds:

<Riddell> bryce: keyboard is just a laptop one, I also plugged in a hal one and restarted X
<bryce> Riddell: well, in general upgrades to intrepid don't lose the keyboard like this normally, so there is something unusual about your system
 Riddell: it looks like the touchpad got detected okay; I assume that works?
<Riddell> bryce: yes the touchpad worked, nothing unusal it's an HP laptop and it works fine from a fresh install. I also deleted the xorg.conf and restarted X but no difference

Revision history for this message
Bryce Harrington (bryce) wrote :

From IRC it sounds like this is a hal caching issue:

<ion_> pitti: I was told to bug you about this. After an upgrade from a fresh hardy installation to intrepid, HAL had old information in /var/cache/hald/fdi-cache. It only stat()d most of the FDI files without opening them, and never took /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi into account, which caused X not to find any input devices. I renamed the cache file away and everything works now.

Changed in xorg:
importance: Undecided → High
milestone: none → ubuntu-8.10-beta
status: New → Confirmed
Johan Kiviniemi (ion)
description: updated
Changed in hal:
assignee: nobody → pitti
Martin Pitt (pitti)
Changed in hal:
milestone: ubuntu-8.10-beta → ubuntu-8.10
Martin Pitt (pitti)
Changed in hal:
status: Confirmed → In Progress
Revision history for this message
Martin Pitt (pitti) wrote :

Oh, it just occurred to me that a time-based stat() comparison is doomed to fail. dpkg preserves the timestamps of files, so if you install a new package which ships an FDI file, hal won't pick it up immediately. Worse though, even rebooting won't help.

I think the best thing we can do is to nuke the cache in the hal init script, before starting it.

Revision history for this message
Martin Pitt (pitti) wrote :
Changed in hal:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hal - 0.5.11-3~ubuntu10

---------------
hal (0.5.11-3~ubuntu10) intrepid; urgency=low

  [ Martin Pitt ]
  * debian/hal.init: Remove the FDI cache before startup. dpkg preserves
    original timestamps of unpacked fdi files in packages, so changes in those
    will never get picked up on upgrade, not even after a reboot.
    (LP: #275825)

  [ Michael Bienia ]
  * Add debian/patches/06_smart_card_readers_acl.patch:
    Grant access to the currently logged-in user on some SCM smart-card
    readers (LP: #57755). This should improve the out-of-box support for
    OpenGPG card users.

 -- Martin Pitt <email address hidden> Thu, 02 Oct 2008 17:16:53 +0200

Changed in hal:
status: Fix Committed → Fix Released
Changed in hal:
status: Unknown → New
Changed in hal:
status: New → Fix Released
Revision history for this message
z3non (tom-uttenthaler) wrote :

seems, this bug has been 'unfixed' in hal 0.5.11-4ubuntu4

I did report it in https://bugs.launchpad.net/ubuntu/+source/hal/+bug/304793

For me it seems, a dpkg trigger isn't the appropriate way, as a future timestamped fdi-cache would only be deleted on a package upgrade or by hand. The init script at least should check for 'uncommon' timestamp on fdi-cache and delete it in that case ...

regards,
tom

Revision history for this message
Martin Pitt (pitti) wrote :

Right, thanks z3non. I'll handle this in bug 304793.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.