dbus_connection_send_with_reply_and_block eats 100% CPU then eventually times out
Ralf Habacker
ralf at habacker.de
Sat Jan 31 05:49:02 PST 2015
Am 31.01.2015 um 13:08 schrieb Alex Brooks:
>
> Hi Ralf,
>
> Do you have a wlan0 on that computer?
>
no, wlp3s0 .. need to use -i i wlps3so
>
> (also note that the method in question (signalpoll) is new in
> wpa_supplicant v2.3).
>
-> updated
+ need to run as root
> On 31 Jan 2015 19:27, "Ralf Habacker" <ralf at habacker.de
> <mailto:ralf at habacker.de>> wrote:
>
>
> Am 31.01.2015 um 05:04 schrieb Alex Brooks:
> > Hi,
> >
> > I've been fighting for a long time with what now looks like a
> libdbus
> > bug.
> > I have a cut-down test program which calls a dbus method of
> > wpa_supplicant at 100Hz, it does this happily for several hours then
> > at some point the behaviour changes: any future calls sit at
> 100% CPU
> > for 25sec then time out.
>
who eat's the cpu
- dbus-daemon
- wpa_supplicant
- your client app
>
> > I don't think the problem is on the wpa_supplicant side: other
> clients
> > can simultaneously make this call without any problems, and
> restarting
> > the client fixes it.
>
you did a strace of the related processes ?
>
> > [I'm running at 100Hz because the faster I run this loop, the
> faster> it reproduces the problem. CPU load sits below 20% before
> I hit the
> > bug].
>
the test case contains
while ( true ) {
...
usleep(0.1 * 1e6);
}
which is 10H z
got it running as root
Ralf
>
> >
> > I posted details and a sample program as a Qt bug report (I'm using
> > the QDBus wrapper and thought it might be a Qt bug initially):
> > https://bugreports.qt.io/browse/QTBUG-43550
> >
> > Does anyone have any thoughts?
> I compiled the testcase on opensuse 13.1 x86_64 and did run:
>
> sudo ./signalpoll
> getNetDevObjectPath(wlan0)
> getNetDevObjectPath : GetInterface result: QDBusMessage(type=Error,
> service="", error name="fi.w1.wpa_supplicant1.InterfaceUnknown", error
> message="wpa_supplicant knows nothing about this interface.",
> signature="", contents=([]) )
> terminate called after throwing an instance of 'std::string'
>
> Regards
> Ralf m
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20150131/5f1930b7/attachment.html>
More information about the dbus
mailing list