[Pm-utils] Trouble waking from sleep

Christopher Lang christopher.lang at acurana.de
Fri May 15 07:25:26 PDT 2009


Dan,

thanks, for pointing me into the right direction, the 
https://bugzilla.redhat.com/show_bug.cgi?id=477964 has it all.


However I would like to point out a few inconsistencies, that are still 
present in git repositories:

1. git repo from today, NetworkManager:
file NetworkManager/initscript/Arch/networkmanager.in

This one is using --type=method_call \ in the dbus-send, which is 
non-blocking, but makes dbus-send use "dbus_message_new_method_call" to set 
up the message, rather than "dbus_message_new_signal"

2. git repo from today, pm-utils:
file pm-utils/pm/sleep.d/55NetworkManager

This one still has the dbus-send without anything, no --print-reply and 
no --type=method_call.

3. None of the current git repositores uses the --print-reply as suggested in 
the above bug report.


Conclusion:

Using dbus-send to send "sleep" or "wake" to NM is causing problems, due to 
dbus sometimes loosing messages of short lived processes - this is known and 
confirmed.

Using --print-reply in NM related dbus-send calls is confirmed to work, but is 
highly questionable in my eyes, because it is blocking, worst case this will 
block for the default dbus timeout value (is that 2 sec. or so?).


Using --type=method_call (which is in the NM initscript, but not yet in 
pm-utils git) might or might not fix the sleep/wake issue that is caused by 
dbus loosing messages of short lived processes. It forces dbus-send to use:

dbus_message_new_method_call
dbus_connection_send (connection, message, NULL);
dbus_connection_flush (connection);

where the "flush" according to dbus docs blocks until the message queue is 
empty and so far *should* ensure our "sleep" or "wake " to go through. So it 
should be used in pm-utils too. It is in NM git already.

Chris

http://www.acurana.de/



More information about the Pm-utils mailing list