jrief / django-websocket-redis

Websockets for Django applications using Redis as message queue
http://django-websocket-redis.awesto.com/
MIT License
895 stars 221 forks source link

Cannot run correctly with gevent from uwsgi #264

Closed ruoshui1314 closed 5 years ago

ruoshui1314 commented 6 years ago

hi I would like to use websocket like this: http://django-websocket-redis.readthedocs.io/en/latest/running.html But there is a problem when i use uwsgi with gevent parameters. when I run 'uwsgi --http :9000 --module mysite.wsgi --http-websockets', it seems work correctly. uWSGI is running in multiple interpreter mode spawned uWSGI worker 1 (and the only) (pid: 10960, cores: 1)

But caught exception when I run with gevent. uwsgi --http :9000 --module mysite.wsgi --gevent 100 --http-websockets WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x8427c0 pid: 18686 (default app) uWSGI is running in multiple interpreter mode spawned uWSGI worker 1 (and the only) (pid: 18686, cores: 100) running gevent loop engine [addr:0x48d3e0] Traceback (most recent call last): File "src/gevent/greenlet.py", line 527, in gevent._greenlet.Greenlet.spawn File "src/gevent/greenlet.py", line 247, in gevent._greenlet.Greenlet.init File "src/gevent/greenlet.py", line 133, in gevent._greenlet._extract_stack ValueError: call stack is not deep enough !!! uWSGI process 18686 got Segmentation Fault !!! backtrace of 18686 uwsgi(uwsgi_backtrace+0x2c) [0x46b5bc] uwsgi(uwsgi_segfault+0x21) [0x46b981] /lib/x86_64-linux-gnu/libc.so.6(+0x354b0) [0x7f3744ab84b0] uwsgi() [0x48da09] uwsgi(uwsgi_ignition+0x12e) [0x46bb6e] uwsgi(uwsgi_worker_run+0x26d) [0x47039d] uwsgi(uwsgi_init_worker_mount_apps+0) [0x4709a0] uwsgi() [0x41e53e] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f3744aa3830] uwsgi(_start+0x29) [0x41e569] end of backtrace

Anyone help?thank you.