中关村村草 发表于 2011-01-17 11:17

mongrel 1.2.0.pre2 302跳转无响应的解决

mongrel 1.2.0.pre2 302跳转无响应的解决


对于这个魔幻的语言,调试花了我不少力气。


这个bug 只 在windows控制台下才出现,在linux下没问题。

一个好好的登陆post,成功后本应跳转的,控制台也打出302和跳转地址,可浏览器不跳转,报错。

用http sniffer工具看了一下,只有post没有回应数据。


一点点的查源码,发现mongrel拦了个异常,确没有打印一下,害人不浅啊。

最后查出是LogTailer类的tail!方法出现问题,print时有异常抛出,但被mongrel给接了,导致这个连接就这样结束了。

hack一下lib/hack_log_tailer.rb

Ruby代码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,强制打出来,可能出现异常,再底层的有兴趣的可以再跟进去看看。
页: [1]
查看完整版本: mongrel 1.2.0.pre2 302跳转无响应的解决