Comment 28 for bug 57872

Revision history for this message
Scott Bronson (bronson) wrote :

My laptop (IBM T-42p) suffers from this bug right now. Edgy beta, gpm v. 2.16.1-0ubuntu1. While trying to fix it, I've just found something rather startling...

- When I use the Ubuntu-compiled gpm, it never works.
- When I compile the Ubuntu sources myself, it works! But there's a catch...

First, establish that Ubuntu's package never works:

0. killall gnome-power-manager
1. gnome-power-manager --no-daemon --verbose

The output demonstrates that gpm definitely sees the power button press and calls gnome_client_request_save. No matter how many times you push the button, the push is noticed but nothing happens.

Now, watch a self-compiled package work but miss the first button push.

0. killall gnome-power-manager
1. apt-get source gnome-power-manager
2. cd gnome-power-manager-2.16.1
3. ./configure; make
4. cd src
5. ./gnome-power-manager --no-daemon --verbose

Push the button once. Nothing happens.

Now push it again. It works! The shutdown dialog appears and everything works hunky-dory.

Push it again. It continues working. After the first failure, it works all the time. If you kill and restart ./gnome-power-manager, it fails once as before, then works all the time. This is 100% reproducible on my machine.

It doesn't appear to matter whether the self-compiled gpm is running as a daemon or not. Either way, it misses the first button push, then notices every push after that.

NOTE: I have set "General -> When power button is pressed" to "Ask Me" because that's the only mode that I find useful.

NOTE2: it takes my computer a 3-count before it notices a push on the power button. This is disturbing because a 4-count causes it to power off immediately. It would be nice if gpm could provide more immediate feedback. I wonder if this causes some people to think that it's not working at all -- they're just not pushing the button for long enough.

If anyone can suggest code modifications to try, I'm happy to give them a whirl. I'm getting somewhat familiar with this bit of code...