每天进步一点点——Swift Proxy日志错误:ERROR WSGI: code 400, message Bad request syntax

转载请说明出处:http://blog.csdn.net/cywosp/article/details/19819039

有段时间发现swift的proxy日志莫名其妙的记录了以下错误:
[2013-09-25 17:35:10,222] ERROR WSGI: code 400, message Bad request syntax ('\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00\x06user01\x00\x00\x00\x17nmon_x86_rhel2 - \xe5\x89\xaf\xe6\x9c\xac\x00\x00\x00\x00\x00\x00\x00\x00PUT /v1.0/BB303D46698A4817A8BD42164F95D59D/obj/44EEA9E18EFE47D78FEF8DA1F8620F17-1B1AAA7606D04610A8BCE7D282CE07CB HTTP/1.1') (txn: tx26d387087fe0400bb254d629db558f83) (client_ip: 127.0.0.1)

Sep 28 11:25:09 localhost proxy ERROR WSGI: code 400, message Bad request version ('\x00\xff\x009\x008\x005\x003\x002\    x00\x04\x00/\xfe\xff\x00')

在swift的源码中搜了一下“ERROR WSGI:“关键字,只有在swift/common/wsgi.py中的def run_server(conf, logger, sock):函数里有:
  ...
Line: 209 # Redirect logging other messages by the underlying WSGI software.
Line: 210 wsgi.HttpProtocol.log_message = \
Line: 211 lambda s, f, *a: logger.error('ERROR WSGI: ' + f % a)
  ...
分析了一下,程序执行到这里还没有进入到proxy的handle_request函数就已经出错了,在网上搜了也没发现有人遇到过。不过经过一段时间的努力搜索,这个 http://www.cnblogs.com/yuxc/archive/2012/12/06/2805552.html问题的到给了我启示,里面提到了出现类似错误有可能是因为客户端本应该是发送http请求的,但发送时变成https的请求了。于是自己用curl命令向proxy服务发送了一个https请求,果然日志记录了和上面类似的错误。经过排查原来是我们的C++客户端的堆栈被破坏了,向swift发送了异常请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值