Hello,

I think I can say for sure the crash caused by 0mq.
2.0.7 and 2.0.8 behave in the same way.

If put something like sleep(1) before the end of send_thread try block, 
everything is fine.
Serialising of erasing push sockets in send_thread by mutex does not help 
though.

Thanks.

06.09.10, 14:04, "Ilja Golshtein" <[email protected]>:

> Hello!
>  
>  The application http://pastebin.com/yJY5xgts
>  produces following trace
>  ==
>  (gdb) thread 1
>  [Switching to thread 1 (Thread 2025)]#0  0x00002abfca190265 in raise (
>      sig=) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
>  64        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
>  (gdb) bt
>  #0  0x00002abfca190265 in raise (sig=)
>      at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
>  #1  0x00002abfca191d10 in abort () at abort.c:88
>  #2  0x00002abfca1ca84b in __libc_message (do_abort=2, 
>      fmt=0x2abfca282348 "*** glibc detected *** %s: %s: 0x%s ***\n")
>      at ../sysdeps/unix/sysv/linux/libc_fatal.c:170
>  #3  0x00002abfca1d230f in malloc_printerr (av=0x2abfca4b29e0, 
> p=0x2aaab0003340, 
>      have_lock=0) at malloc.c:6205
>  #4  _int_free (av=0x2abfca4b29e0, p=0x2aaab0003340, have_lock=0) at 
> malloc.c:4738
>  #5  0x00002abfca1d276b in __libc_free (mem=) at malloc.c:3670
>  #6  0x00002abfc97adf98 in pop (this=0x2aaaac000bb0, msg_=0x40ef4080) at 
> yqueue.hpp:160
>  #7  read (this=0x2aaaac000bb0, msg_=0x40ef4080) at ypipe.hpp:161
>  #8  zmq::reader_t::read(._0 *) (this=0x2aaaac000bb0, msg_=0x40ef4080) at 
> pipe.cpp:77
>  #9  0x00002abfc97a8a59 in zmq::fq_t::recv(._0 *, int) (this=0xd753480, 
> msg_=0x40ef4080, 
>      flags_=) at fq.cpp:86
>  #10 0x00002abfc97b5bc4 in zmq::socket_base_t::recv(._78 *, int) (this=0x7e8, 
> msg_=0x7e9, 
>      flags_=6) at socket_base.cpp:387
>  #11 0x00000000004040e5 in zmq::socket_t::recv(zmq::message_t*, int) ()
>  #12 0x000000000040336c in recv_thread(void*) ()
>  #13 0x00002abfc957573d in start_thread (arg=)
>      at pthread_create.c:301
>  #14 0x00002abfca233d1d in clone () from /lib64/libc.so.6
>  ==
>  if number of threads is 5 or more.
>  
>  Command line parameters - number of threads.
>  
>  Currently investigating though I am 90% sure the roots are inside 0mq.
>  
>  > uname -a
>  Linux dev 2.6.18-194.3.1.el5 #1 SMP Thu May 13 13:08:30 EDT 2010 x86_64 
> x86_64 x86_64 GNU/Linux
>  >rpm -qa | grep zeromq
>  zeromq-devel-2.0.8-1
>  zeromq-debuginfo-2.0.8-1
>  zeromq-2.0.8-1
>  
>  
>  

-- 
Best regards,
Ilja Golshtein.
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to