Bug 312761

Summary: Hibernate works but resume says it didn't
Product: [Fedora] Fedora Reporter: Matthew Saltzman <mjs>
Component: gnome-power-managerAssignee: David Zeuthen <davidz>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 8CC: abartlet, katzj, mclasen, opensource, richard, wwoods
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-10-29 21:43:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 235703    
Attachments:
Description Flags
pm-suspend log from "failed" hibernate
none
portion of /var/log/messages related to "failed" hibernate
none
Patch to fix expected return types none

Description Matthew Saltzman 2007-09-29 22:21:48 UTC
Description of problem:
I hibernate my Thinkpad T61 and that seems to work fine, but on resume the pm
applet pops up a balloon saying it failed.

Version-Release number of selected component (if applicable):
pm-utils-0.99.4-3.fc8

How reproducible:
Always

Steps to Reproduce:
1. Hibernate using pm applet.
2. Resume.
3.
  
Actual results:
Error balloon pops up claiming hibernate failed.

Expected results:
No error ballon.  (Either because it worked or because whatever error occured
has been fixed...)

Additional info:

I'm attaching pm-suspend.log and relevant secctions of messages.  I had SELinux
in permissive mode for this test, but you will see some AVCs in the log.

(Looking at the log, I'm not sure if this is a pm-utils issue or a kernel issue,
but I'll file here first.)

Comment 1 Matthew Saltzman 2007-09-29 22:25:09 UTC
Created attachment 211441 [details]
pm-suspend log from "failed" hibernate

Comment 2 Matthew Saltzman 2007-09-29 22:26:07 UTC
Created attachment 211451 [details]
portion of /var/log/messages related to "failed" hibernate

Comment 3 Till Maas 2007-09-30 09:38:31 UTC
Afaik, the applet belongs to gnome-power-manager, the pm-suspend does not
contain any warnings, therefore I guess it is an applet issue.
Maybe you need to increase verbosity to get a helping log, because the critical
log entries seem to be:

Sep 29 18:02:37 valkyrie gnome-power-manager: (mjs) Resuming computer
Sep 29 18:02:37 valkyrie gnome-power-manager: (mjs) hibernate failed

But a reason why it failed is missing.

Comment 4 Matthew Saltzman 2007-09-30 21:15:37 UTC
OK How do I get better debug logs?  Thanks.

Comment 5 Matthias Clasen 2007-10-05 03:15:33 UTC
David, any clue about this ?

Comment 6 David Zeuthen 2007-10-05 15:17:39 UTC
g-p-m is expect the wrong return types from hal; so I wrote a patch (will attach
in the next comment) but for some reason beyond me I still get the "Sleep
problem" dialog from g-p-m. Richard, what gives?

FWIW, it works fine using dbus-send:

[davidz@oneill ~]$ dbus-send --print-reply --system --dest=org.freedesktop.Hal
/org/freedesktop/Hal/devices/computer
org.freedesktop.DBus.Introspectable.Introspect |grep -2 Suspend
  </interface>
  <interface name="org.freedesktop.Hal.Device.SystemPowerManagement">
    <method name="Suspend">
      <arg name="num_seconds_to_sleep" direction="in" type="i"/>
      <arg name="return_code" direction="out" type="i"/>
    </method>
    <method name="SuspendHybrid">
      <arg name="num_seconds_to_sleep" direction="in" type="i"/>
      <arg name="return_code" direction="out" type="i"/>
[davidz@oneill ~]$ 
[davidz@oneill ~]$ 
[davidz@oneill ~]$ dbus-send --print-reply --system --dest=org.freedesktop.Hal
/org/freedesktop/Hal/devices/computer
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0
method return sender=:1.4 -> dest=:1.434 reply_serial=2
   int32 0
[davidz@oneill ~]$ 
[davidz@oneill ~]$ 
[davidz@oneill ~]$ dbus-send --print-reply --system --dest=org.freedesktop.Hal
/org/freedesktop/Hal/devices/computer
org.freedesktop.DBus.Introspectable.Introspect |grep -2 Hibernate
      <arg name="return_code" direction="out" type="i"/>
    </method>
    <method name="Hibernate">
      <arg name="return_code" direction="out" type="i"/>
    </method>
[davidz@oneill ~]$ dbus-send --print-reply --system --dest=org.freedesktop.Hal
/org/freedesktop/Hal/devices/computer
org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
[davidz@oneill ~]$ 
[davidz@oneill ~]$ 
[davidz@oneill ~]$ dbus-send --print-reply --system --dest=org.freedesktop.Hal
/org/freedesktop/Hal/devices/computer
org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
method return sender=:1.4 -> dest=:1.487 reply_serial=2
   int32 0


Comment 7 David Zeuthen 2007-10-05 15:18:54 UTC
Created attachment 217621 [details]
Patch to fix expected return types

This patch should go upstream.

Comment 8 David Zeuthen 2007-10-05 18:28:08 UTC
OK, so it turns out we're getting a D-Bus timeout. Actually g-p-m got codepaths
to handle this [1] but the call site passes NULL for the GError so we never get
to examine this and properly handle timeouts. This patch

http://cvs.fedoraproject.org/viewcvs/devel/gnome-power-manager/gnome-power-manager-2.20.0-use-gerror.patch?rev=1.1&view=auto

takes care of that. I've tested and it works. Also, there's an update of the
patch in comment 7; you want this one instead

http://cvs.fedoraproject.org/viewcvs/devel/gnome-power-manager/gnome-power-manager-2.20.0-expected-return-types.patch?rev=1.1&view=auto

So this is fixed in -3 which is building right now. You can beat the rush and
get the 0day warez right here

http://koji.fedoraproject.org/koji/taskinfo?taskID=184871

Thanks.

[1] : because dbus-glib sucks and don't let you specify INT_MAX or a magic
sentinel to say "unlimited" as a timeout; this is really needed because the
(wall-clock) time between when Hibernate() is invoked and when it returns (e.g.
when the system resumes) can be infinitely long.


Comment 9 Matthew Saltzman 2007-10-05 20:39:29 UTC
OK Got it.  A quick hibernate-resume seems to work fine.


Comment 10 David Zeuthen 2007-10-12 22:49:00 UTC
*** Bug 330191 has been marked as a duplicate of this bug. ***

Comment 11 Andrew Bartlett 2007-10-29 20:39:07 UTC
quick hibername-resumes are the easy part, you need to leave it overnight for a
correct test.  

gnome-power-manager-2.20.0-6.fc8 still fails. 


Comment 12 Jeremy Katz 2007-10-29 21:43:16 UTC
I just hibernated and then set my clock forward two months (party like it's
December 29th! :-) and resumed and things are fine.  

Andrew -- If you're still seeing a failure message, it's likely due to something
actually failing.  Please open another report and include
/var/log/pm-suspend.log from when it says it fails.

Comment 13 Andrew Bartlett 2008-07-17 22:17:43 UTC
(sorry for the late reply).  Confirming fixed, as I've not seen this in months.