Re: dbus_connection_send_with_reply_and_block eats 100% CPU then eventually times out

Alex Brooks <a.brooks-q5Kw/nu8f7BaUVwZm7wrbVaTQe2KTcn/@public.gmane.org>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <[email protected]>
Hi Ralf,

I tried with the modifications you suggest (tracking number of 
iterations and time).
There's a magic number: in all cases it starts failing after 300274 
iterations (100% repeatable):

signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=1, relapsed=0.00127s, dt=0.001258s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=2, relapsed=0.012663s, dt=0.001231s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=3, relapsed=0.023954s, dt=0.00118s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=4, relapsed=0.035219s, dt=0.001154s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=5, relapsed=0.046478s, dt=0.001148s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=6, relapsed=0.057801s, dt=0.001208s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=7, relapsed=0.069105s, dt=0.001194s
...
... wait ~55min ...
...
signalInfo rssi=-45
TRACE(signalpoll_onefile.cpp): iter=300268, relapsed=3456.71s, dt=0.001268s
signalInfo rssi=-45
TRACE(signalpoll_onefile.cpp): iter=300269, relapsed=3456.72s, dt=0.001208s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=300270, relapsed=3456.74s, dt=0.001236s
signalInfo rssi=-38
TRACE(signalpoll_onefile.cpp): iter=300271, relapsed=3456.75s, dt=0.001205s
signalInfo rssi=-42
TRACE(signalpoll_onefile.cpp): iter=300272, relapsed=3456.76s, dt=0.001225s
signalInfo rssi=-41
TRACE(signalpoll_onefile.cpp): iter=300273, relapsed=3456.77s, dt=0.001214s
signalInfo rssi=-47
TRACE(signalpoll_onefile.cpp): iter=300274, relapsed=3456.78s, dt=0.001289s
Error: wpa_supplicant DBus error in signalPoll: Did not receive a reply. 
Possible causes include: the remote application did not send a reply, 
the message bus security policy blocked the reply, the reply timeout 
expired, or the network connection was broken.
TRACE(signalpoll_onefile.cpp): iter=300275, relapsed=3481.79s, dt=24.9997s
Error: wpa_supplicant DBus error in signalPoll: Did not receive a reply. 
Possible causes include: the remote application did not send a reply, 
the message bus security policy blocked the reply, the reply timeout 
expired, or the network connection was broken.
TRACE(signalpoll_onefile.cpp): iter=300276, relapsed=3506.8s, dt=24.9995s
Error: wpa_supplicant DBus error in signalPoll: Did not receive a reply. 
Possible causes include: the remote application did not send a reply, 
the message bus security policy blocked the reply, the reply timeout 
expired, or the network connection was broken.
TRACE(signalpoll_onefile.cpp): iter=300277, relapsed=3531.81s, dt=24.9994s



Alex


On 01/02/15 03:12, Ralf Habacker wrote:
>
> Am 31.01.2015 um 16:10 schrieb Ralf Habacker:
>>
>> Am 31.01.2015 um 14:49 schrieb Ralf Habacker:
>>>> 5 19:27, "Ralf Habacker" <ralf-aVxs2ipq/[email protected] 
>>>> <mailto:ralf-aVxs2ipq/[email protected]>> 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.
>>>>
>> After running about 54 minutes I got:
>>
>>  counts      time (ms)
>> 300272 3245606 signalInfo rssi=-63
>> 300273 3245616 signalInfo rssi=-63
>> Error: wpa_supplicant DBus error in signalPoll: Did not receive a 
>> reply. Possible causes include: the remote application did not send a 
>> reply, the message bus security policy blocked the reply, the reply 
>> timeout expired, or the network connection was broken.
>>
> second run gave same results:
> ...
>
> 300272 3548324 1 signalInfo rssi=-57
> 300273 3548413 79 signalInfo rssi=-59
> Error: wpa_supplicant DBus error in signalPoll: Did not receive a 
> reply. Possible causes include: the remote application did not send a 
> reply, the message bus security policy blocked the reply, the reply 
> timeout expired, or the network connection was broken.
>
> Sounds as a kind of limits reached. The counts are collected as shown 
> below:
>
>     while ( true )
>     {
>         try {
>             int a = timer.elapsed();
>             int rssi = signalPoll( *netDevInterfaceInterface_ );
>             int b = timer.elapsed();
>             cout << i++ << " " << b << " " << (b-a) << " signalInfo 
> rssi=" << rssi << endl;
>         }
>
>> Ralf
>>
>>
>> _______________________________________________
>> dbus mailing list
>> [email protected]
>> http://lists.freedesktop.org/mailman/listinfo/dbus
>


-- 
------------------------------
Dr Alex Brooks
Marathon Targets Pty Ltd
Ph: +61 2 8090 7202
Web: www.marathon-targets.com
------------------------------

_______________________________________________
dbus mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.