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