Can get a response from service when D-Bus timeout value is set to 0
Ideally, setting the timeout value to 0 would ensure that the service could not respond in time and that org.freedesktop.DBus.Method.NoReply error would be returned. But we have had intermittent successes w/ communicating w/ the service in 0 time.
This is a problem, because we would like to test the behavior of our client when there is no reply, and we had assumed that a timeout of 0 would do the trick. Obviously, we could expend some ingenuity to ensure that our client took too long for the 0 timeout. But in the best case, for other clients that would like to test their behavior on NoReply, the best thing would be for libdbus to consistently return NoReply on a timeout of 0.
The PR which elicited this response is here: https://github.com/stratis-storage/stratis-cli/pull/476. The test failure is only intermittent, and we don't have much more detail.
Our client makes use of dbus-python, but we can be quite certain that the value of the timeout in dbus-python is 0.0, so we don't believe that the problem is there.
I think it should be possible to, even if the timeout handling is necessarily not precise, include some short-circuiting behavior that ensures correctly returning NoReply on 0 timeout. I have not had any success in figuring out exactly where that should occur, however. Would you be interested in a PR to address this problem?