possible 1.0 blocker; bus timeout

John (J5) Palmieri johnp at redhat.com
Fri Nov 3 10:13:18 PST 2006

On Fri, 2006-11-03 at 12:54 -0500, David Zeuthen wrote:
> Hi,
> Back in March I raised some issues with timeouts
>  http://lists.freedesktop.org/archives/dbus/2006-February/004358.html
> and Havoc said maybe not all is good here
>  http://lists.freedesktop.org/archives/dbus/2006-March/004373.html
> e.g. the bus might time out callers after only six hours.
> To recap: the situation is that HAL provides a Suspend() method on a
> D-Bus interface. This will suspend the machine using whatever mechanism
> is suitable (ACPI, PMU, APM or whatever). When the system wakes up, the
> Suspend() method returns. 
> The problem, IIRC, which may still exist, is that the bus itself will
> time out such method calls after six hours. I'm not sure this problem is
> still there but I want to submit it's a bug. And I think it's something
> we want to fix before 1.0. Does anyone one if this issue still exists?
> And if it does, do you agree we should fix it before 1.0? 
> I'm happy to look investigate the problem and provide a patch... but
> only if there is some chance a patch will get accepted...

I'm holding up the latest release because HAL keeps crashing so if it
doesn't change any interfaces I would consider it a bug fix.  I want to
get HAL to stop crashing first though.

> For the record, HAL is widely deployed and quite a few applications take
> advantage of this method. It can't be changed without breaking a lot of
> stuff. Some people have said that it's bad design and HAL's Suspend
> sohuld rather terminate at once and report back a signal when the system
> resumes. This is a) something I disagree with; and b) D-Bus is way too
> low level to enforce this.

The only problem with your approach is the potential to leak the pending
call forever if it never receives the return reply. To say that D-Bus is
way too low level to enforce this is to say we allow our users to shoot
themselves in the foot.  I personally don't think it is too low level if
it could cause greater problems (such as leaking inside the bus itself)
but since this is an application's prerogative then I have no
objections.  I would ask you put a comment in the code saying you are a
trained professional and kids shouldn't try this at home ;)
John (J5) Palmieri <johnp at redhat.com>

More information about the dbus mailing list