Open Bug 1218186 Opened 5 years ago Updated 2 years ago

Firefox hangs during normal browsing.

Categories

(Core :: DOM: Device Interfaces, defect, P3)

41 Branch
defect

Tracking

()

UNCONFIRMED

People

(Reporter: dev, Unassigned)

Details

(Keywords: hang)

User Agent: Mozilla/5.0 (X11; Linux i686; rv:40.0) Gecko/20100101 Firefox/40.0
Build ID: 20150826023504

Steps to reproduce:

Firefox 41.0 under GNU/Linux 4.0.4-301.fc22.i686+PAE #1 SMP  on a Lenovo laptop would hang during normal browsing and random occasions.



Actual results:

Firefox failed to respond.

Attaching GDB revealed FF was waiting on a poll() for a dbus response regarding the battery. The timeout set set to 25000 ms (dbus default?) and perhaps was being called so much from some javascript routine that FF was effectively hung forever.

Going to about:config and setting "dom.battery.enabled" to "false" seems to stop FF hanging (been over 2 weeks now without hanging).

Backtrace below:
----
0xb76d9be8 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in _dbus_poll (__timeout=__timeout@entry=25000, __nfds=__nfds@entry=1, __fds=__fds@entry=0xbff2dcf4) at /usr/include/bits/poll2.h:46
#3  0xffffffff in _dbus_poll (fds=fds@entry=0xbff2dcf4, n_fds=n_fds@entry=1, timeout_milliseconds=timeout_milliseconds@entry=25000) at dbus-sysdeps-unix.c:2595
#4  0xffffffff in socket_do_iteration (transport=0x942b8a00, flags=6, timeout_milliseconds=25000)
    at dbus-transport-socket.c:1149
#5  0xffffffff in _dbus_transport_do_iteration (transport=0x942b8a00, flags=flags@entry=6, timeout_milliseconds=timeout_milliseconds@entry=25000) at dbus-transport.c:1001
#6  0xffffffff in _dbus_connection_do_iteration_unlocked (connection=connection@entry=0x9081f7d0, pending=pending@entry=0x0, flags=flags@entry=6, timeout_milliseconds=timeout_milliseconds@entry=25000) at dbus-connection.c:1227
#7  0xffffffff in _dbus_connection_block_pending_call (pending=pending@entry=0x8bb42d30)
    at dbus-connection.c:2527
#8  0xffffffff in dbus_pending_call_block (pending=pending@entry=0x8bb42d30)
    at dbus-pending-call.c:741
#9  0xffffffff in dbus_g_proxy_end_call_internal (proxy=proxy@entry=0x924b5968 [DBusGProxy], call_id=call_id@entry=1, error=error@entry=0xbff2e018, first_arg_type=2454412096, args=args@entry=0xbff2dff4 "\024\340", <incomplete sequence \362\277>) at dbus-gproxy.c:2442
#10 0xffffffff in dbus_g_proxy_call (proxy=0x924b5968 [DBusGProxy], method=0xb443522c "EnumerateDevices", error=0xbff2e018, first_arg_type=<optimized out>) at dbus-gproxy.c:2819
#11 0xffffffff in mozilla::hal_impl::UPowerClient::UpdateTrackedDeviceSync() (this=0x8bb42880)
    at /usr/src/debug/firefox-41.0/mozilla-release/hal/linux/UPowerClient.cpp:280
#12 0xffffffff in mozilla::hal_impl::UPowerClient::BeginListening() (this=0x8bb42880)
    at /usr/src/debug/firefox-41.0/mozilla-release/hal/linux/UPowerClient.cpp:212
#13 0xffffffff in mozilla::hal_impl::EnableBatteryNotifications() ()
    at /usr/src/debug/firefox-41.0/mozilla-release/hal/linux/UPowerClient.cpp:131
#14 0xffffffff in mozilla::dom::battery::BatteryManager::Init() (this=0x924b55c0)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/battery/BatteryManager.cpp:39
#15 0xffffffff in mozilla::dom::Navigator::GetBattery(mozilla::ErrorResult&) (this=0x905196b0, aRv=...) at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/Navigator.cpp:1434
#16 0xffffffff in mozilla::dom::NavigatorBinding::get_battery(JSContext*, JS::Handle<JSObject*>, mozilla::dom::Navigator*, JSJitGetterCallArgs) (cx=0x8c40d460, obj=..., self=0x905196b0, args=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/objdir/dom/bindings/NavigatorBinding.cpp:2121
#17 0xffffffff in mozilla::dom::GenericBindingGetter(JSContext*, unsigned int, JS::Value*) (cx=cx@entry=0x8c40d460, argc=0, vp=0xbff2e2fc)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/bindings/BindingUtils.cpp:2490
#18 0xffffffff in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (args=..., native=<optimized out>, cx=0x8c40d460) at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jscntxtinlines.h:235
#19 0xffffffff in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (cx=cx@entry=0x8c40d460, args=..., construct=construct@entry=js::NO_CONSTRUCT)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:718
#20 0xffffffff in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (cx=cx@entry=0x8c40d460, thisv=..., fval=..., argc=argc@entry=0, argv=argv@entry=0x0, rval=rval@entry=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:773
#21 0xffffffff in js::InvokeGetter(JSContext*, JSObject*, JS::Value, JS::MutableHandle<JS::Value>) (cx=cx@entry=0x8c40d460, obj=0x8496f040, fval=..., rval=..., rval@entry=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:849
#22 0xffffffff in CallGetter(JSContext*, JS::HandleObject, JS::HandleObject, js::HandleShape, JS::MutableHandleValue) (cx=cx@entry=0x8c40d460, obj=..., obj@entry=..., receiver=..., 
    receiver@entry=..., shape=shape@entry=..., vp=vp@entry=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/NativeObject.cpp:1653
#23 0xffffffff in js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (vp=..., shape=..., obj=..., receiver=..., cx=0x8c40d460) at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/NativeObject.cpp:1701
#24 0xffffffff in js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (vp=..., nameLookup=NotNameLookup, id=..., receiver=..., obj=..., cx=0x8c40d460)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/NativeObject.cpp:1919
#25 0xffffffff in js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (cx=0x8c40d460, obj=..., receiver=..., id=..., vp=...) at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/NativeObject.cpp:1953
#26 0xffffffff in js::GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (cx=0x8c40d460, obj=..., receiver=..., id=..., vp=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/NativeObject.h:1417
#27 0xffffffff in js::jit::DoGetElemFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetElem_Fallback*, JS::HandleValue, JS::HandleValue, JS::MutableHandleValue) (vp=..., name=0x8af7d7f0, receiver=..., obj=..., cx=0x8c40d460) at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jsobj.h:840
#28 0xffffffff in js::jit::DoGetElemFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetElem_Fallback*, JS::HandleValue, JS::HandleValue, JS::MutableHandleValue) (res=..., key=..., receiver=..., obj=..., op=JSOP_GETELEM, cx=0x8c40d460)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter-inl.h:439
#29 0xffffffff in js::jit::DoGetElemFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetElem_Fallback*, JS::HandleValue, JS::HandleValue, JS::MutableHandleValue) (res=..., rref=..., lref=..., op=JSOP_GETELEM, cx=0x8c40d460)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter-inl.h:562
#30 0xffffffff in js::jit::DoGetElemFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetElem_Fallback*, JS::HandleValue, JS::HandleValue, JS::MutableHandleValue) (cx=0x8c40d460, frame=0xbff2e6c0, stub_=0x86fdfa10, lhs=..., rhs=..., res=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jit/BaselineIC.cpp:3597
#31 0xffffffff in  ()
#32 0xffffffff in  ()
#33 0xffffffff in  ()
#34 0xffffffff in  ()
#35 0xffffffff in  ()
#36 0xffffffff in  ()
#37 0xffffffff in  ()
#38 0xffffffff in  ()
#39 0xffffffff in  ()
#40 0xffffffff in  ()
#41 0xffffffff in  ()
#42 0xffffffff in  ()
#43 0xffffffff in  ()
#44 0xffffffff in  ()
#45 0xffffffff in  ()
#46 0xffffffff in  ()
#47 0xffffffff in EnterBaseline(JSContext*, js::jit::EnterJitData&) (cx=0x9d998430, 
    cx@entry=0x8c40d460, data=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jit/BaselineJIT.cpp:125
#48 0xffffffff in js::jit::EnterBaselineMethod(JSContext*, js::RunState&) (cx=cx@entry=0x8c40d460, state=...) at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jit/BaselineJIT.cpp:156
#49 0xffffffff in js::RunScript(JSContext*, js::RunState&) (cx=cx@entry=0x8c40d460, state=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:649
#50 0xffffffff in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (cx=cx@entry=0x8c40d460, args=..., construct=construct@entry=js::NO_CONSTRUCT)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:736
#51 0xffffffff in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (cx=cx@entry=0x8c40d460, thisv=..., fval=..., argc=argc@entry=0, argv=0xbff2f0a8, rval=rval@entry=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:773
#52 0xffffffff in js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, uint32_t, JS::Value*, JS::MutableHandleValue) (cx=0x8c40d460, frame=0xbff2f0d0, stub_=0x8678f1d0, argc=0, vp=0xbff2f098, res=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jit/BaselineIC.cpp:9859
#53 0xffffffff in  ()
#54 0xffffffff in  ()
#55 0xffffffff in  ()



Expected results:

Firefox should not have hung.

Perhaps not wait so long for a reply or should use an asyncronous method to check battery status ?
Cache the result so a tab/javascript instance cannot hang up ALL tabs ?
Cache ALL system/hal variables that javascipt can access ?
Severity: normal → critical
Keywords: hang
Product: Firefox → Core
Component: Untriaged → DOM: Device Interfaces
This can now be reproduced reliably.

Followed this URL:
https://developer.mozilla.org/en-US/Apps/Build/gather_and_modify_data/retrieving_battery_status_information

to this example app:
https://github.com/franciov/low-energy-messenger/tree/mdn_retrieving_battery_status_information

And with no other windows opened, enabling "dom.battery.enabled" to "true" and reloading the low-energy-messenger example above will hang FF.

The backtrace is similar to above but is called via a slightly different route, differing at #27 onwards (shown below).

FYI, I tried the low-energy-messenger example on two other machines and it seems to work OK (Firefox 41.0.2 & 40.0.3), so this might be a Fedora 22/Lenovo laptop issue rather than a FF 41 issue per se.

Backtrace:
----------
(gdb) bt
...
#27 0xffffffff in js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) (cx=0x920f76d0, v=..., name=..., vp=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:4102
#28 0xffffffff in Interpret(JSContext*, js::RunState&) (vp=..., lval=..., pc=<optimized out>, script=..., fp=<optimized out>, cx=<optimized out>)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:259
#29 0xffffffff in Interpret(JSContext*, js::RunState&) (cx=0x920f76d0, state=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:2690
#30 0xffffffff in js::RunScript(JSContext*, js::RunState&) (cx=cx@entry=0x920f76d0, state=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:659
#31 0xffffffff in js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, 
JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (cx=<optimized out>, 
    cx@entry=0x920f76d0, script=script@entry=..., scopeChainArg=..., thisv=..., newTargetValue=..., type=<optimized out>, type@entry=js::EXECUTE_GLOBAL, evalInFrame=..., 
    evalInFrame@entry=..., result=<optimized out>, result@entry=0x0)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:900
#32 0xffffffff in js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (cx=cx@entry=0x920f76d0, script=script@entry=..., scopeChainArg=..., rval=0x0)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/vm/Interpreter.cpp:934
#33 0xffffffff in Evaluate(JSContext*, JS::HandleObject, JS::Handle<js::ScopeObject*>, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::MutableHandleValue) (cx=0x920f76d0, scope=..., staticScope=..., optionsArg=..., srcBuf=..., rval=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jsapi.cpp:4416
#34 0xffffffff in JS::Evaluate(JSContext*, JS::AutoVectorRooter<JSObject*>&, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::MutableHandle<JS::Value>) (rval=..., srcBuf=..., optionsArg=..., scopeChain=..., cx=0x920f76d0)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jsapi.cpp:4442
#35 0xffffffff in JS::Evaluate(JSContext*, JS::AutoVectorRooter<JSObject*>&, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::MutableHandle<JS::Value>) (cx=0x920f76d0, scopeChain=..., optionsArg=..., srcBuf=..., rval=...)
    at /usr/src/debug/firefox-41.0/mozilla-release/js/src/jsapi.cpp:4497
#36 0xffffffff in nsJSUtils::EvaluateString(JSContext*, JS::SourceBufferHolder&, JS::Handle<JSObject*>, JS::CompileOptions&, nsJSUtils::EvaluateOptions const&, JS::MutableHandle<JS::Value>, void**) (aCx=0x920f76d0, aSrcBuf=..., aEvaluationGlobal=..., aCompileOptions=..., aEvaluateOptions=..., aRetValue=..., aOffThreadToken=0x0)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsJSUtils.cpp:224
#37 0xffffffff in nsJSUtils::EvaluateString(JSContext*, JS::SourceBufferHolder&, JS::Handle<JSObject
*>, JS::CompileOptions&, void**) (aCx=0x920f76d0, aSrcBuf=..., aEvaluationGlobal=..., aCompileOptions=..., aOffThreadToken=0x0)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsJSUtils.cpp:287
#38 0xffffffff in nsScriptLoader::EvaluateScript(nsScriptLoadRequest*, JS::SourceBufferHolder&, void**) (this=0x9874c1d0, aRequest=0x9399af20, aSrcBuf=..., aOffThreadToken=0x0)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsScriptLoader.cpp:1144
#39 0xffffffff in nsScriptLoader::ProcessRequest(nsScriptLoadRequest*, void**) (this=0x9874c1d0, aRequest=0x9399af20, aOffThreadToken=0x0)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsScriptLoader.cpp:970
#40 0xffffffff in nsScriptLoader::ProcessScriptElement(nsIScriptElement*) (this=0x9874c1d0, aElement=<optimized out>) at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsScriptLoader.cpp:688
#41 0xffffffff in nsScriptElement::MaybeProcessScript() (this=0x9be549bc)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsScriptElement.cpp:141
#42 0xffffffff in nsIScriptElement::AttemptToExecute() (this=0x9be549bc)
    at /usr/src/debug/firefox-41.0/mozilla-release/dom/base/nsIScriptElement.h:221
#43 0xffffffff in nsHtml5TreeOpExecutor::RunScript(nsIContent*) (this=0x932cbb40, aScriptElement=0x9be54970) at /usr/src/debug/firefox-41.0/mozilla-release/parser/html/nsHtml5TreeOpExecutor.cpp:662
#44 0xffffffff in nsHtml5TreeOpExecutor::RunFlushLoop() (this=0x932cbb40)
    at /usr/src/debug/firefox-41.0/mozilla-release/parser/html/nsHtml5TreeOpExecutor.cpp:487
#45 0xffffffff in nsHtml5ExecutorFlusher::Run() (this=0x95ec8370)
    at /usr/src/debug/firefox-41.0/mozilla-release/parser/html/nsHtml5StreamParser.cpp:127
#46 0xffffffff in nsThread::ProcessNextEvent(bool, bool*) (this=0xb7129320, aMayWait=true, aResult=0xbfd2baeb) at /usr/src/debug/firefox-41.0/mozilla-release/xpcom/threads/nsThread.cpp:849
#47 0xffffffff in NS_ProcessNextEvent(nsIThread*, bool) (aThread=<optimized out>, aMayWait=true)
    at /usr/src/debug/firefox-41.0/mozilla-release/xpcom/glue/nsThreadUtils.cpp:265
#48 0xffffffff in nsThread::Shutdown() (this=0x9be54ac0)
    at /usr/src/debug/firefox-41.0/mozilla-release/xpcom/threads/nsThread.cpp:647
#49 0xffffffff in nsRunnableMethodImpl<nsresult (nsIThread::*)(), true>::Run() (m=<optimized out>, o=<optimized out>, this=0x91df62b4) at ../../dist/include/nsThreadUtils.h:618
#50 0xffffffff in nsRunnableMethodImpl<nsresult (nsIThread::*)(), true>::Run() (this=0x91df62a0)
    at ../../dist/include/nsThreadUtils.h:825
#51 0xffffffff in nsThread::ProcessNextEvent(bool, bool*) (this=0xb7129320, aMayWait=false, aResult=0xbfd2bbeb) at /usr/src/debug/firefox-41.0/mozilla-release/xpcom/threads/nsThread.cpp:849
#52 0xffffffff in NS_ProcessNextEvent(nsIThread*, bool) (aThread=<optimized out>, aMayWait=false)
    at /usr/src/debug/firefox-41.0/mozilla-release/xpcom/glue/nsThreadUtils.cpp:265
#53 0xffffffff in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0xb71f7ca0, aDelegate=0xb71207c0) at /usr/src/debug/firefox-41.0/mozilla-release/ipc/glue/MessagePump.cpp:95
#54 0xffffffff in MessageLoop::RunInternal() (this=0xb71207c0)
    at /usr/src/debug/firefox-41.0/mozilla-release/ipc/chromium/src/base/message_loop.cc:234
#55 0xffffffff in MessageLoop::Run() (this=0xb71207c0)
    at /usr/src/debug/firefox-41.0/mozilla-release/ipc/chromium/src/base/message_loop.cc:227
#56 0xffffffff in MessageLoop::Run() (this=0xb71207c0)
    at /usr/src/debug/firefox-41.0/mozilla-release/ipc/chromium/src/base/message_loop.cc:201
#57 0xffffffff in nsBaseAppShell::Run() (this=0xa873bc40)
    at /usr/src/debug/firefox-41.0/mozilla-release/widget/nsBaseAppShell.cpp:165
#58 0xffffffff in nsAppStartup::Run() (this=0xa872d970)
    at /usr/src/debug/firefox-41.0/mozilla-release/toolkit/components/startup/nsAppStartup.cpp:280
#59 0xffffffff in XREMain::XRE_mainRun() (this=0xbfd2be68)
    at /usr/src/debug/firefox-41.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:4269
#60 0xffffffff in XREMain::XRE_main(int, char**, nsXREAppData const*) (this=0xbfd2be68, argc=1, argv=0xbfd2d194, aAppData=0xbfd2bfbc)
    at /usr/src/debug/firefox-41.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:4351
#61 0xffffffff in XRE_main(int, char**, nsXREAppData const*, uint32_t) (argc=1, argv=0xbfd2d194, aAppData=0xbfd2bfbc, aFlags=0)
    at /usr/src/debug/firefox-41.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:4440
#62 0xffffffff in do_main(int, char**, nsIFile*) (argc=1, argv=0xbfd2d194, xreDirectory=0xb7124600)
    at /usr/src/debug/firefox-41.0/mozilla-release/browser/app/nsBrowserApp.cpp:214
#63 0xffffffff in main(int, char**) (argc=1, argv=0xbfd2d194)
    at /usr/src/debug/firefox-41.0/mozilla-release/browser/app/nsBrowserApp.cpp:478

A couple of things ...
---------------------
#11 /usr/src/debug/firefox-41.0/mozilla-release/hal/linux/UPowerClient.cpp:280
uses a dbus call that dbus code says is deprecated (in /usr/src/debug/dbus-glib-0.104/dbus/dbus-gproxy.c line 2789)

/*
 ....
 * Deprecated: New code should use GDBus instead. The closest equivalent
 *  is g_dbus_proxy_call_sync().
 */

  dbus_g_proxy_call(..,"EnumerateDevices",...)

and there's a version of this call where a timeout can be set (presumably to override dbus default)
  dbus_g_proxy_call_with_timeout(..,timeout,"EnumerateDevices",...)

which is also deprecated.
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.