免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3588 | 回复: 0
打印 上一主题 下一主题

mongrel 1.2.0.pre2 302跳转无响应的解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-17 11:17 |只看该作者 |倒序浏览
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代码
  1. module Rails   
  2.   module Rack   
  3.     class LogTailer   
  4.       def tail!   
  5.         @file.seek @cursor  
  6.   
  7.         if !@file.eof?   
  8.           contents = @file.read   
  9.           @cursor  = @file.tell   
  10.           $stdout.print contents rescue nil  
  11.         end  
  12.       end  
  13.     end  
  14.   end  
  15. end  
复制代码
问题解决,

主要问题出在utf8字串上,windows console为gbk,强制打出来,可能出现异常,再底层的有兴趣的可以再跟进去看看。

评分

参与人数 1可用积分 +5 收起 理由
zuerrong + 5 我很赞同

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP