Re: Missing signal / dbus-fd while waiting for dbus-method response

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello folks,

we’re facing the following issue:

An application does not receive DBUS signals via the DBUS file descriptor while waiting for a dbus-method response.

The basic setup: Two applications are communicating via DBUS, using a select() loop waiting for events on the dbus-fd.
The faulty procedure:

-       Triggered by a timer event, Application A calls the dbus-method “transmit” of application B.

-       During processing of the “transmit”-method, application B broadcasts a dbus-signal on which application A is matched on.

-       Afterwards, application B sleeps for 5ms and then finishes its “transmit”-method by sending a response message towards application A.

-       The dbus-fd of Application A does not trigger the select() afterwards (same for epoll() if implemented so).
Though …

o   … when triggering sd_bus_process() manually, the signal is being receved in application A, meaning that the signal was in fact received and queued, but the event was not signalled.

o   … other processes, not being “blocked” by waiting for a response-message, do also receive the signal.

 

We saw this behavior on multiple platforms, e.g. Linux kubuntu 4.4.0-137-generic with 229-4ubuntu21.1 and Debian Buster 4.18.0-2-am64 with systemd 239-10.

Attached you can find a simple example, including application A / B, a makefile and the correlating *.conf-files.

 

Thanks in advance and best regards,

Jan Mueller

<<attachment: mbsp_files.zip>>

_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux