首页 > 其他 > 详细

Swift Proxy日志错误:ERROR WSGI: code 400, message Bad request syntax

时间:2014-02-25 12:10:10      阅读:490      评论:0      收藏:0      [点我收藏+]

有段时间发现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发送了异常请求。

Swift Proxy日志错误:ERROR WSGI: code 400, message Bad request syntax

原文:http://blog.csdn.net/cywosp/article/details/19819039

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!