返回列表 发帖

[Bug报告]TW丢失配置的原因推测及给开发组的解决建议

今天又碰到一次配置文件丢失,TW的所有设置变回了默认设置。其实之前也碰到过几次,但是之前版本更新比较频繁,总去体验新版本了,就没深入
研究一下怎么回事。今天正好有空,就仔细看了看TheWorld.ini文件,发现了一些问题,希望对开发组解决或缓解丢失配置文件的情况有所帮助。

分析步骤:

(1):虽然我没有刻意去留意或做实验,但是我发现大多数我丢失配置文件的情况,似乎都发生在没有正常关闭TW就直接关机或重启的时候;

(2):分析TheWorld.ini内容丢失的行为。这个是TW的配置文件,除了TW,没哪个程序会访问它。因此导致配置文件内容丢失的最大可能就是TW对TheWorld.ini的非正确读写。结合第一点,我判断问题极大的可能就出在TW关闭时对TheWorld.ini这个配置文件进行了错误读写导致;

(3):沿第二点结论往下研究:TW在退出时,会有什么操作对TheWorld.ini进行读写呢?联想到TW的退出时自动保存“未关闭的标签页面”的功能,答案已经逐渐呼之欲出。经对TW操作时和关闭后所产生的TheWorld.ini文件对比发现,TW的“未关闭的标签页面”信息果然是写在TheWorld.ini里面的![OldUrl](上上次关闭TW时的“未关闭的标签页面”)+[LastUrl](上次关闭TW时的“未关闭的标签页面”)里面的内容就是。进一步实验确定TW的行为模式:当点击TW右上关闭按钮正常关闭TW时会对TheWorld.ini进行读写操作,把当前“未关闭的标签页面”信息写入文件,如果用户直接使用任务管理器终止TW则不会执行读写操作,因此推测开发组把这个读写配置文件的过程写在了TW执行正常关闭的模块里;

(4):结合以上三点,试图推出TW非正常读写配置文件原因。结论:“当未正常关闭TW就直接关机或重启时,系统要求TW关闭,TW开始执行关闭过程,并将未关闭的标签页面信息写入TheWorld.ini文件中,恰在此时,由于读写配置文件的时间超出系统设定的程序响应限时,于是系统就直接终止了TW进程,导致TW未能正常完成写入TheWorld.ini并保存的这一过程,于是下次开机TheWorld.ini文件内容丢失,TW配置丢失……”

推论,可能用过某些优化程序,如优化大师和超级兔子等,并设置了系统自动终止未响应程序和缩短了系统等待程序响应时间的用户,更容易碰到TW配置丢失的情况。而因为TW读写配置文件的时间并非十分固定,因此有时能正常读写完毕,此时一切正常,故丢失配置这个bug未必每次都能重现。

解决方法,建议开发组把“未关闭的标签页面”的信息写到一个单独的文件例如什么OldUrl.ini啊的,避开关闭时对TheWorld.ini的写入,就可以解决这个问题了。那样即使丢失,也只是丢失了“未关闭的标签页面”的信息而已,而不会影响这么大。进一步的话建议把写入的方式改为,每次打开关闭一个标签,就读写“未关闭的标签页面”信息文件的临时副本,正常关闭时用临时副本覆盖掉原信息文件,这样如果TW非正常退出,信息也会保留在临时副本里(参考office的做法)

最后,希望TW继续进步,越来越完善。

[ 本帖最后由 hzggz 于 2007-7-2 23:32 编辑 ]

虽然这个问题发生概率比较少,但是一发生,损失还是很大的。。
我工作了


TOP

平时备份下ini,系统关机要按照规程来做,这才是好习惯
非法关机不仅仅会造成tw的设置丢失,还会造成很多麻烦的问题呵呵。

[ 本帖最后由 靖哥哥 于 2007-6-4 21:29 编辑 ]
遇见浏览问题请将tw主程序拷贝到空白目录下运行,排除插件、设置文件的错误。反馈问题时请尽量包含以下内容,以便开发组可以尽快解决问题:TheWorld版本、操作系统、IE版本、问题现象(可截图说明)、问题重现方式(如果可以反复重现)
世界之窗浏览器--打开窗口看世界。
应用技巧和常见问题
风向吧

TOP

嗯,靖版说的是一种良好的操作习惯,应该提倡。不过某些时候可能病毒或是什么其他原因导致系统重启或关机,TW也应该能正常处理才对。现在TW用句开发人员的行话来说“健壮性还不够”,呵呵。

TOP

回复 #4 hzggz 的帖子

嗯哪,还要继续补钙
ps:最近我的输入法词库不行了,好多错别字
遇见浏览问题请将tw主程序拷贝到空白目录下运行,排除插件、设置文件的错误。反馈问题时请尽量包含以下内容,以便开发组可以尽快解决问题:TheWorld版本、操作系统、IE版本、问题现象(可截图说明)、问题重现方式(如果可以反复重现)
世界之窗浏览器--打开窗口看世界。
应用技巧和常见问题
风向吧

TOP

你一说输入法,我发现我的搜狗3.0现在在TW上切换标签好像不会自动关闭了哦,嘿嘿

TOP

回复 #6 hzggz 的帖子

出来就装上了,一直都没自动关闭或者无法显示过
这个月据说会有新版本了吧。
上次坛上某个特务说,可能快支持多线程的问题了。
遇见浏览问题请将tw主程序拷贝到空白目录下运行,排除插件、设置文件的错误。反馈问题时请尽量包含以下内容,以便开发组可以尽快解决问题:TheWorld版本、操作系统、IE版本、问题现象(可截图说明)、问题重现方式(如果可以反复重现)
世界之窗浏览器--打开窗口看世界。
应用技巧和常见问题
风向吧

TOP

原帖由 靖哥哥 于 2007-6-4 21:41 发表 http://bbs.ioage.com/images/common/back.gif
出来就装上了,一直都没自动关闭或者无法显示过
这个月据说会有新版本了吧。
上次坛上某个特务说,可能快支持多线程的问题了。

呵呵,用拼音加加吧,4.1便携版,纯绿色的,超好用,词库也不错哦
强烈期待新版~~

TOP

备份确实上一个需要养成的好习惯

TOP

晕,刚发现写错了2个很重要的字!建议里面应该是“写入一个单独的文件”,原来怎么打成了“写如一个单独的问题”……赶快改回来。

TOP

楼主帖子总能分析的详细,赞。
看到说这个现象的不少,于是总想试图重现和了解多点,楼主说的因素我曾刻意测验过很长时间,可惜还是未遇到过一次,大体可见此帖http://bbs.ioage.com/viewthread. ... mp;page=1#pid276088

TOP

嗯,这个bug不是太容易重现,因为有一定的随机性。在系统终止TW之前,如果TW能完成写入TheWorld.ini的操作,则一切正常,而如果TW恰好某次写入TheWorld.ini完成的慢了,给系统强行终止,则丢失TheWorld.ini的部分内容。也就是说现在TW就在跟系统比赛,看谁手快,系统手快则TW丢失配置,TW手快则配置文件正常。所以丢不丢失就看系统和TW谁赢,而TW读写配置文件的时间未必每次相同,系统终止TW的时间也未必每次相同,因此想重现是比较困难的。而我提的建议就是避开在关闭时读写配置文件,也就是说不让TW拿配置文件来和系统比赛手快了,谁赢都好,都不会影响到配置文件,从而解决这个问题。

如果大家对这个bug很感兴趣,想重现试试看的话,可以这样试试,应该会提高这个bug出现的机会
第一步:使用“windows优化大师”这个软件,找到磁盘缓存优化。改以下几个设置(1)输入/输出缓存大小设为最大128MB;(2)打开“windows自动关闭停止响应的应用程序”这项;(3)打开“关闭无响应程序的等待时间”这项,并设置为 1 秒;(4)打开“应用程序出错的等待响应时间”这项,并设置为 1 秒;  然后保存修改,重启计算机;
第二步:同时打开很多下载工具,什么BT,emule,迅雷统统让他们下载;
第三步:运行TW,打开大量网站;
第四步:按开始->关闭计算机->重启;
然后,如果你运气好(或者是运气坏?),你就可能碰到丢失配置文件了……
整个操作就是为了缩短系统终止TW的时间,并延长TW写入配置文件的时间来试图重现bug,不过,依然要靠下运气哈

TOP

返回列表