对于这个魔幻的语言,调试花了我不少力气。
?
这个bug 只 在windows控制台下才出现,在linux下没问题。
一个好好的登陆post,成功后本应跳转的,控制台也打出302和跳转地址,可浏览器不跳转,报错。
用http sniffer工具看了一下,只有post没有回应数据。
?
一点点的查源码,发现mongrel拦了个异常,确没有打印一下,害人不浅啊。
最后查出是LogTailer类的tail!方法出现问题,print时有异常抛出,但被mongrel给接了,导致这个连接就这样结束了。
hack一下lib/hack_log_tailer.rb
module Rails module Rack class LogTailer def tail! @file.seek @cursor if !@file.eof? contents = @file.read @cursor = @file.tell $stdout.print contents rescue nil end end end end end?
?问题解决,
主要问题出在utf8字串上,windows console为gbk,强制打出来,可能出现异常,再底层的有兴趣的可以再跟进去看看。