ignoring a process' last words: SIGPIPE ...
Michael Meeks
michael.meeks at novell.com
Thu Mar 27 20:14:00 PDT 2008
On Fri, 2008-03-28 at 02:23 +0000, Michael Meeks wrote:
> Having said that - it's true that a regression test is nice & might
> help clarify the problem & solution; I'll look for the best place to add
> one.
So - this is clearly not the best place ;-) On the other hand, it
demonstrates the problem quite readily. Simply apply
dbus-race-test.diff,
$ export DBUS_TEST_RACE=1
and run 'make check'.
To fix, apply dbus-race-hack.diff (not clean, no doubt we should have a
_dbus_get_is_errno_pipe API and use that only in the write path) and
re-run the tests.
Of course, unfortunately, making a reliable unit test for this
( particularly with no understanding of the infrastructure ;-) is a
little difficult. Perhaps a single app that opens 2 connections and
sends a message to itself - one -very- short lived. Of course, something
(a timeout?) to provoke the race in this case would be rather useful,
but we could perhaps make the bus_driver_send_service_acquired delay
specific to that service name (?).
HTH,
Michael.
--
michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dbus-race-test.diff
Type: text/x-patch
Size: 1597 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/dbus/attachments/20080328/52734283/attachment.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dbus-race-hack.diff
Type: text/x-patch
Size: 2981 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/dbus/attachments/20080328/52734283/attachment-0001.bin
More information about the dbus
mailing list