proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 清华大学免费地址列表更新 (20070418) | Main | freeip.thu.pac 20070423 Data time: THU 2007.04.18 06:10 »

April 23, 2007

Quaful 发布 windtear 版自动代理脚本导致浏览器死锁补丁

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://windtear.net/archives/2007/04/23/001215.html
http://windtear.net/archives/2007/04/23/001215.html

Quaful 发布 windtear 版自动代理脚本导致浏览器死锁补丁

相关链接:
freeip.thu.pac 20070423 Data time: THU 2007.04.18 06:10
freeip.cer.pac 20070423 Data time: CER 2007.04.15

http://www.newsmth.org/bbscon.php?bid=99&id=1071727
发信人: Quaful (夸父|毕业倒计时), 信区: NewSoftware
标  题: [原创] windtear 版自动代理脚本导致浏览器死锁(含补丁)
发信站: 水木社区 (Mon Apr 23 11:14:19 2007), 站内

前段时间我发过一篇文章,描述了自动代理脚本导致Firefox或者IE死锁的问题。当时给出
了临时解决方案,即死锁时重起网卡。不过显然这并不是很方便的方案。
{
http://www.newsmth.org/bbscon.php?bid=99&id=1065616
发信人: Quaful (夸父|毕业毕业), 信区: NewSoftware
标  题: [原创]关于浏览器假死的一种原因及临时解决办法
发信站: 水木社区 (Fri Apr 13 10:06:34 2007), 站内
}

今天我终于克服惰性,认真研究了一下死锁的位置,看看能不能用什么补丁把它绕过去。结
果跟了5分钟就发现了问题出在自动代理脚本中调用的函数:isInNet() 上(可见我忍受了
这么久死锁-重起网卡-再死锁-再重起网卡的痛苦是多么的不值得,惰性真是人类的大敌啊
)。isInNet() 这个函数倒不会因为 dns 解析失败就死掉,但是它明显会变得很慢。
Firefox 和 IE 都有这个问题,并且实际上有人已经发现了:
Firefox:
http://www.clasohm.com/blog/one-entry?entry_id=14866
“Even one call to isInNet() can be fatal for Firefox. If the DNS server for
the host name is not reachable, the call will only time out after a couple of
seconds. And during this time, Firefox will be completely unresponsive. No
display updates, no response to keyboard or mouse input.”

IE:
http://support.microsoft.com/kb/315810/en
“Browser Is Slow to Respond When You Use an Automatic Configuration Script”
......

看到了吧,上面是一连串的 isInNet() 的调用,如果域名不能解析的话,每个调用会有5到
40秒的延迟,就算5秒吧,这里有482次调用,那么延迟就是 5*482=2410秒=40分钟。所以浏
览器基本上就跟死掉一样了。

windtear 当年写的这个自动代理脚本造福了教育网的大众,这个脚本的普及度也相当高,
呵呵。不过因为这点考虑不周,也让我郁闷了好久。不过现在原因找到了,解决起来也简单
,在 windtear 版的脚本基础上打一个补丁就行了:
加一句:if ( isResolvable(host) ) { ... } 判断一下域名能否解析,不能解析就不要再
调这几百次的 isInNet() 了。
本blog WWW

Posted by windtear at April 23, 2007 11:15 AM

Trackback Pings

TrackBack URL for this entry:
http://cgi.windtear.net/cgi-bin/wt-tb.cgi/1215

Listed below are links to weblogs that reference Quaful 发布 windtear 版自动代理脚本导致浏览器死锁补丁:

» freeip.thu.pac 20070423 Data time: THU 2007.04.18 06:10 from windtear 追求完美
http://windtear.net/archives/2007/04/23/001216.html freeip.thu.pac 20070423 Data time: THU 2007.04.18 06:10 相关链接: Quaful 发布 windtear 版自动代理脚本导致浏览器死锁补丁 freeip.thu.pac 20070423 Data time: THU 2007.04.18 06:10 freeip.cer.pac 20070423... [Read More]

Tracked on April 24, 2007 3:38 PM

» freeip.cer.pac 20070423 Data time: CER 2007.04.15 from windtear 追求完美
http://windtear.net/archives/2007/04/23/001217.html freeip.cer.pac 20070423 Data time: CER 2007.04.15 相关链接: Quaful 发布 windtear 版自动代理脚本导致浏览器死锁补丁 freeip.thu.pac 20070423 Data time: THU 2007.04.18 06:10 freeip.cer.pac 20070423 Data ... [Read More]

Tracked on April 24, 2007 3:40 PM

Comments

Post a comment

Remember Me?



我爱网络
2007-12-31 23:51 2007年度 ipcn.org/ipchina.org 总结报告
2007-12-31 00:31 vmware gsx server service
2007-12-31 00:15 squid 对 404 302 缓存的相关问题
2007-12-30 14:24 升级到 MovableType 3.3x 并修改 entry_basename 兼容性
2007-12-30 13:52 [php] realip judge 前面补0的ip格式剔除
2007-12-14 16:34 rm -rf * 系统管理员要排查的定时炸弹
2007-12-13 19:03 山西的宽带运营商太过分了 私自窜改dns解析
2007-12-13 16:35 F5 MIB 再学习 唯一性标记用地址的小bug
2007-12-11 22:15 perl 用Spreadsheet::WriteExcel写了个处理/读写excel的小程序
2007-12-11 13:39 perl 变量转义的问题

本站使用中的任何问题,请与 windtear SPAM windtear SPAM net 联系
Copyright© 1999-2008 Windtear. All rights reserved.
京ICP备05050670号