Details
-
Bug
-
Resolution: Duplicate
-
Not Evaluated
-
None
-
4.5.3, 4.6.3, 4.7.0
-
None
-
arm1136jfs, qt4.5.3
ubuntu lucid lynx, 4.6.2-0ubuntu5
ubuntu lucid lynx, 4.7.0-beta
Description
Concurrent DBus accesses fail:
The attached test program the behavior has been testet on an embedded target based on ptxdist as on a host machine under Ubuntu Lucid with 6GB of Ram. The erronous replies seen contain the error message:
Thread( 43 ): QDBusMessage(type=Error, service="", error name="org.freedesktop.DBus.Error.NoMemory", error message="Not enough memory", signature="", contents=() ) .
This seems to be a problem with concurrency. As the problem does not occur when
Attached program description:
The attached test program provokes the error on every test run on all qt versions (4.5.3, 4.6.2-0ubuntu5, 4.7.0-beta) tested. It works against the dbus daemon interface and can thus be tested quick on every dbus enabled platform. From main one thread is started which performs dbus function calls. Also after a sleep accesses from within the main thread are started. As soon as concurrent threads are accessing the dbus there
are error reply messages as described above as more seldom dbus timeouts. Not running the event loop and
guarding processEvents in a loop with a mutex which also guards the started thread against dbus accesses.
Attachments
Issue Links
- is replaced by
-
QTBUG-7475 send_with_reply_and_block in libdbus is not thread-safe
- Closed