tonysimpson / nanomsg-python

nanomsg wrapper for python with multiple backends (CPython and ctypes) should support 2/3 and Pypy
MIT License
382 stars 85 forks source link

Segmentation Fault #22

Open pydeveloper94 opened 10 years ago

pydeveloper94 commented 10 years ago

I get a segmentation fault from the following erroneous code using Python 3.3.0

from nanomsg import Socket, REP, REQ

s1 = Socket(REQ)
s2 = Socket(REP)

s1.bind('inproc://hello')
s2.bind('inproc://hi')
s1.close()
s1.connect('inproc://hi')

When I run GDB, it gives me the following backtrace

(gdb) run crash.py 
Starting program: /usr/bin/python3 crash.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff0d0e700 (LWP 7850)]

Program received signal SIGSEGV, Segmentation fault.
0x00000039da809b70 in pthread_mutex_lock () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00000039da809b70 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007ffff0f478d3 in nn_mutex_lock (self=self@entry=0x1489)
    at src/utils/mutex.c:70
#2  0x00007ffff0f42a15 in nn_ctx_enter (self=self@entry=0x1489)
    at src/aio/ctx.c:48
#3  0x00007ffff0f4130a in nn_sock_add_ep (self=0x1411, 
    transport=0x7ffff1163360 <nn_inproc_vfptr>, bind=bind@entry=0, 
    addr=0x7ffff15c9b69 "hi") at src/core/sock.c:475
#4  0x00007ffff0f3db3f in nn_global_create_ep (s=s@entry=-1, 
    addr=<optimized out>, addr@entry=0x7ffff15c9b60 "inproc://hi", 
    bind=bind@entry=0) at src/core/global.c:1101
#5  0x00007ffff0f3e2ea in nn_connect (s=-1, addr=0x7ffff15c9b60 "inproc://hi")
    at src/core/global.c:617
#6  0x00007ffff11658a5 in _nanomsg_cpy_nn_connect (self=<optimized out>, 
    args=<optimized out>) at _nanomsg_cpy/wrapper.c:295
#7  0x00000034dbf0cc3e in PyEval_EvalFrameEx ()
   from /lib64/libpython3.3m.so.1.0
#8  0x00000034dbf0c965 in PyEval_EvalFrameEx ()
   from /lib64/libpython3.3m.so.1.0
#9  0x00000034dbf0de13 in PyEval_EvalCodeEx () from /lib64/libpython3.3m.so.1.0
#10 0x00000034dbf0dedb in PyEval_EvalCode () from /lib64/libpython3.3m.so.1.0
#11 0x00000034dbf2805f in run_mod () from /lib64/libpython3.3m.so.1.0
#12 0x00000034dbf29f7c in PyRun_FileExFlags () from /lib64/libpython3.3m.so.1.0
---Type <return> to continue, or q <return> to quit---
#13 0x00000034dbf2ac7d in PyRun_SimpleFileExFlags ()
   from /lib64/libpython3.3m.so.1.0
#14 0x00000034dbf3f4d4 in Py_Main () from /lib64/libpython3.3m.so.1.0
#15 0x0000000000400b1f in main ()