_dbus_get_oom_wait magic

Havoc Pennington hp at redhat.com
Wed Jul 27 23:49:33 EST 2005


On Wed, 2005-07-27 at 08:51 +0200, Timo Hoenig wrote:
> On Tue, 2005-07-26 at 13:56 -0400, Havoc Pennington wrote:
> 
> > Sounds likely; NEED_MEMORY should only happen if there's no memory... I
> > don't know of a bug like this though. The way to debug is to look at the
> > verbose log.
> 
> That is what I did to track down the problem (log attached).  Running a
> few  dbus-send  instances is enough to reproduce the problem:
> 
>         for i in `seq 0 10`; do
>           time dbus-send --system --type=signal \
>                          --dest='foo.bar' /foo/bar foo.bar.sig
>         done
> 

The next thing I'd do is start adding verbose debug spew everywhere that
NEED_MEMORY gets returned from connection_dispatch()

That should let you know the next stack frame (where in
connection_dispatch() it failed) and then you can add verbose printouts
everywhere that OOM happens in the next function down, and so forth
until you get to what actually happens.

I thought I had verbose spew in most places that return OOM but
obviously not.

Havoc




More information about the dbus mailing list