Yes, I've checked the FAQ and tuning pages as well. I've upped the 
send/recv-space and descriptor limits but those make no difference.

In terms of output...

Running, as is:
% wuserver 
Broken pipe

Running it as is under gdb will get the broken pipe showing up with a variety 
of backtraces but typically somewhere in send()...
(gdb) run
Starting program: /Users/john/Software/Repos/zeromq/zguide/examples/C/wuserver 
Reading symbols for shared libraries ++++. done

Program received signal SIGPIPE, Broken pipe.
0x0000000100013571 in zmq::dist_t::send (this=0x100300668, msg_=0x7fff5fbff460, 
flags_=0) at dist.cpp:107
107     int zmq::dist_t::send (zmq_msg_t *msg_, int flags_)
(gdb) bt full
#0  0x0000000100013571 in zmq::dist_t::send (this=0x100300668, 
msg_=0x7fff5fbff460, flags_=0) at dist.cpp:107
        msg_more = <value temporarily unavailable, due to optimizations>
#1  0x000000010001f99c in zmq::socket_base_t::send (this=0x1003004f0, 
msg_=0x7fff5fbff460, flags_=0) at socket_base.cpp:492
        rc = <value temporarily unavailable, due to optimizations>
#2  0x0000000100000e3f in main ()
No symbol table info available.
Current language:  auto; currently c++

Running it after building wuserver with debug under GDB:
(gdb) run
Starting program: /Users/john/Software/Repos/zeromq/zguide/examples/C/wuserver 
Reading symbols for shared libraries ++++. done

Program received signal SIGPIPE, Broken pipe.
0x00007fff808c3e3e in sendto ()
(gdb) bt
#0  0x00007fff808c3e3e in sendto ()
#1  0x00000001000165a1 in zmq::mailbox_t::send (this=0x100300020, 
cmd_=@0x7fff5fbff290) at mailbox.cpp:162
#2  0x000000010001735c in zmq::object_t::send_activate_reader (this=<value 
temporarily unavailable, due to optimizations>, destination_=<value temporarily 
unavailable, due to optimizations>) at object.cpp:278
#3  0x0000000100013344 in zmq::dist_t::write (this=0x100300668, 
pipe_=0x1005005a0, msg_=0x7fff5fbff480) at dist.cpp:198
#4  0x0000000100013435 in zmq::dist_t::distribute (this=0x100300668, 
msg_=0x7fff5fbff480, flags_=<value temporarily unavailable, due to 
optimizations>) at dist.cpp:140
#5  0x0000000100013595 in zmq::dist_t::send (this=0x100300668, msg_=<value 
temporarily unavailable, due to optimizations>, flags_=<value temporarily 
unavailable, due to optimizations>) at dist.cpp:113
#6  0x000000010001f99c in zmq::socket_base_t::send (this=0x1003004f0, 
msg_=0x7fff5fbff480, flags_=0) at socket_base.cpp:492
#7  0x0000000100000e3f in main ()
(gdb) 


Which makes it sound like there's some unhandled race condition(s) where the 
client has disconnected the socket while the server is still trying to send 
another message to that disconnected client.

Thanks,
John

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to