uWSGI: write(): Broken pipe

write(): Broken pipe [plugins/python/uwsgi_pymodule.c line 711]
write(): Broken pipe [plugins/python/uwsgi_pymodule.c line 711]
……

猜测,client在未返回完整结果的情况下关闭浏览器,nginx停止了当前socket,但未通知uwsgi,uwsgi向nginx返回结果,但被通知已经关闭,所以报错

write(): Resource temporarily unavailable [plugins/python/uwsgi_pymodule.c line 711]
write(): Resource temporarily unavailable [plugins/python/uwsgi_pymodule.c line 711]
……

猜测,套接字设置为异步,然后在使用write发送数据时采取的方式是循环发送大量的数据;由于是异步的,write\send将要发送的数据提交到发送缓冲区后是立即返回的,并不需要对端确认数据已接收。在这种情况下是很有可能出现发送缓冲区被填满,导致write\send无法再向缓冲区提交要发送的数据。因此就产生了Resource temporarily unavailable的错误,

An error occurred in the current transaction. You can’t execute queries until the end of the ‘atomic’ block.

runserver运行django项目的时候并未碰到这个问题,但用uwsgi时就比较频繁了
找到了一个好理解的解释

with transaction.atomic():
            try:
                do_something()
            except:
                pass
            do_something2()

数据库在执行do_something()中的某一写操作时发生了错误。但是业务代码里try except捕获了异常但是没有将异常抛出,而是静默处理。代码顺利执行至do_something2(),在执行do_something2()中的数据库请求时,django向数据库发送rollback请求,并抛出异常。

Fri Sep 28 01:06:02 2018 - uwsgi_response_write_headers_do(): Bad file descriptor [core/writer.c line 248] during GET /ws/fpoint (172…~)
OSError: write error

close websocket 时报错
https://github.com/duanhongyi/dwebsocket/issues/14

uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory

(envPICC) [root@localhost conf]# uwsgi -i uwsgi.ini 
uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory
(envPICC) [root@localhost conf]# which uwsgi
/root/anaconda3/envs/envPICC/bin/uwsgi
(envPICC) [root@localhost conf]# ldd /root/anaconda3/envs/envPICC/bin/uwsgi
	linux-vdso.so.1 =>  (0x00007ffd89776000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb48f88a000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fb48f588000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fb48f384000)
	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fb48f122000)
	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fb48edb8000)
	libz.so.1 => /lib64/libz.so.1 (0x00007fb48eba2000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fb48e97c000)
	libicui18n.so.58 => not found
	libicuuc.so.58 => not found
	libicudata.so.58 => not found
	libutil.so.1 => /lib64/libutil.so.1 (0x00007fb48e779000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fb48e571000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb48e33a000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fb48df6d000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fb48faa6000)
	libfreebl3.so => /lib64/libfreebl3.so (0x00007fb48dd6a000)
(envPICC) [root@localhost conf]# ln -s /root/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
(envPICC) [root@localhost conf]# ln -s /root/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
(envPICC) [root@localhost conf]# ln -s /root/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58
(envPICC) [root@localhost conf]# uwsgi -i uwsgi.ini 
uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicui18n.so.58)
uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libicui18n.so.58)
uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicuuc.so.58)
uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libicuuc.so.58)
(envPICC) [root@localhost conf]# strings /usr/lib64/libstdc++.so.6|grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
(envPICC) [root@localhost conf]# cp /root/anaconda3/lib/libstdc++.so.6.0.24 /lib64/
(envPICC) [root@localhost conf]# cd /usr/lib64
(envPICC) [root@localhost lib]# rm -rf libstdc++.so.6
(envPICC) [root@localhost lib]# ln -s libstdc++.so.6.0.24 libstdc++.so.6
(envPICC) [root@localhost lib64]# ls |grep libstdc++.so.6
libstdc++.so.6
libstdc++.so.6.0.19
libstdc++.so.6.0.24
(envPICC) [root@localhost lib64]# cd ……
(envPICC) [root@localhost conf]# uwsgi -i uwsgi.ini 
[uWSGI] getting INI configuration from uwsgi.ini
……

参考:
http://www.cnblogs.com/shanguanghui/p/8994919.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值