Strange SIGPIPE when emitting signal with STRV

Rob Taylor robtaylor at floopily.org
Wed Oct 26 05:22:53 PDT 2005


I was testing emitting a signal with a G_TYPE_STRV, by using the
attached patch to glib/example-signal-{emitter,recipient}.c.

With this patch, the emitter gets a sigpipe after trying to send the
message. Here's the relevent section of the trace with DBUS_VERBOSE set:

16337: Message 0x8053378 (4 /org/designfu/TestService/object
org.designfu.TestService HelloSignal 'as') for null added to outgoing
queue 0x804efe8, 1 pending to send
16337: Message 0x8053378 serial is 6
16337: _dbus_connection_do_iteration_unlocked start
16337:   UNLOCK: _dbus_connection_acquire_io_path
16337: _dbus_connection_acquire_io_path locking io_path_mutex
16337: _dbus_connection_acquire_io_path start
connection->io_path_acquired = 0 timeout = 0
16337: _dbus_connection_acquire_io_path end connection->io_path_acquired
= 1 we_acquired = 1
16337: _dbus_connection_acquire_io_path unlocking io_path_mutex
16337:   LOCK: _dbus_connection_acquire_io_path
16337: Transport iteration flags 0x1 timeout -1 connected = 1
16337:  iteration flags = write timeout = -1 read_watch = 0x804ed30
write_watch = 0x804ed08 fd = 3
16337: do_writing(), have_messages = 1, fd = 3
16337:  wrote 301 bytes of 301
16337: Message 0x8053378 (4 /org/designfu/TestService/object
org.designfu.TestService HelloSignal 'as') removed from outgoing queue
0x804efe8, 0 left to send
16337: check_write_watch(): needed = 0 on connection 0x804efe8 watch
0x804ed08 fd = 3 outgoing messages exist 0
16337:   UNLOCK: protected_change_watch
16337:   LOCK: protected_change_watch
16337:  ... leaving do_iteration()
16337: _dbus_transport_do_iteration end
16337: _dbus_connection_release_io_path locking io_path_mutex
16337: _dbus_connection_release_io_path start
connection->io_path_acquired = 1
16337: _dbus_connection_release_io_path unlocking io_path_mutex
16337: _dbus_connection_do_iteration_unlocked end
16337: _dbus_connection_send_preallocated_and_unlock middle
16337: dispatch status = complete is_connected = 1
16337:   UNLOCK: _dbus_connection_update_dispatch_status_and_unlock
16337:   LOCK: dbus_connection_send
16337: Message 0x8053378 (2 no path no interface no member '') for :1.39
added to outgoing queue 0x804efe8, 1 pending to send
16337: Message 0x8053378 serial is 7
16337: _dbus_connection_do_iteration_unlocked start
16337:   UNLOCK: _dbus_connection_acquire_io_path
16337: _dbus_connection_acquire_io_path locking io_path_mutex
16337: _dbus_connection_acquire_io_path start
connection->io_path_acquired = 0 timeout = 0
16337: _dbus_connection_acquire_io_path end connection->io_path_acquired
= 1 we_acquired = 1
16337: _dbus_connection_acquire_io_path unlocking io_path_mutex
16337:   LOCK: _dbus_connection_acquire_io_path
16337: Transport iteration flags 0x1 timeout -1 connected = 1
16337:  iteration flags = write timeout = -1 read_watch = 0x804ed30
write_watch = 0x804ed08 fd = 3
16337: do_writing(), have_messages = 1, fd = 3
16337: Error writing to remote app: Broken pipe


Any ideas what i'm doing wrong and what's causing the pipe to break?

Thanks,
Rob Taylor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: glib-strv-test.patch
Type: text/x-patch
Size: 2281 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/dbus/attachments/20051026/d726be9e/glib-strv-test-0001.bin


More information about the dbus mailing list