今天又让我逮住一个bug。刚修复十分钟。我觉得可以单独开一篇。
有想体验修bug快感的,私聊。
这个工具不是啥小服务,估计几百万用户打底,全国统一的那种。为啥拿出来呢?因为不是啥恶性bug。
老妈是会计,安装一个全国通用的软件的时候一不小心选错省了。(我也不知道他为啥选错了省)
步骤是:安装 -- 选择省 -- 输入XXX识别号。
然后我老妈输入识别号的时候,提示:这个识别号不存在。
重新安装,发现:省是灰色的,无法选择。
这种屎山代码我懒得理,稍微整理一下代码逻辑即可:(之前在一个C#的代码里面看到过类似的逻辑)
// 如果系统里面有类似provice.log的配置文件,那么直接读取
if exist:
//直接读取出来XX省
// 如果没有读取,那么就确认是新用户,提示可以选择省
else:
// 出来一个弹窗让用户选择省然后我老妈选错了。咋办呢?这个代码就一直错下去了?省直接是灰色的,不让选择……
我直接绷不住了。
本人昨天刚说的:安装framework4.0需要卸载重装,你这个也是兄弟级别,你们两个系统开发互相之间交流下开发经验呗。
我妈过去问维护人员,维护人员说:这个需要在控制面板卸载,然后在根目录删除。
我顿时闻到一股不妙的气息:按照你的说法,你们自己的卸载工具还卸不干净咋地?真不至于……
我也找不到配置文件,照着做吧。控制面板删除。
删除完成以后重装,还是灰色的。
wc还真的卸载不干净啊??你们咋做的功能??
继续排查:第一次是好的,卸载完成以后重装应该和第一次一样可以选择,那么就是卸载不干净,留了配置文件在本地。
开始找安装路径,打开一看:
文件都删除了,文件夹一个不剩全留着呢。
手起刀落删除,删除一半提示类似下面这个:

????哥们,这不合适。我都把你卸载了你还给我留注册表留服务???
抱怨归抱怨,远程指挥(我是用QQ给老妈修这个问题的):重启一下电脑。
程序被占用当然删除不了了。
电脑重启以后,还是无法删除。还是提示文件被占用!
排查:这个服务还开机自启!!!
程序起来再开服务不行吗?做个守护进程能咋滴?
本人直接开任务管理器强行删除。
是这个样子的:如果找到无法删除的文件,会提示你被XX服务占用,我找进程没找到,在服务里面找到了。把服务停了。

找到了以后,杀服务。杀完服务就可以卸载了。
bug修复完成,花费20分钟。
简单描述一下系统出了啥问题:
解决方案:
外加一个故事:
很久之前遇见一个问题,那就是代理崩溃。
大家都用过内外网,内网没法用百度,如果外网需要登陆内网的话,需要通过隧道机,而其中最常用的工具是:proxifier
proxifier这个工具是咋实现这个代理的,其实本质上是劫持。
啥意思呢?就是所有的端口往外传报文的时候,必须我proxifier同意才能发,而且我proxifier还可以修改报文内容。至于windows为啥同意这种危险的操作,鬼知道用了啥黑魔法。
很久之前,我们有个开发也是去了另外一个省(我忘了,可能是东三省),安装了一个实现代理的功能。安装了以后,proxifier劫持不了了。
看来这个开发手也很黑。
proxifier:发报文的时候,必须我proxifier同意才能发,而且我proxifier还可以修改报文内容。经过开发一顿越权操作把最高权限拿走了,proxifier拿不到最高权限代理不了了。
一群开发坐在一起:为啥?咋回事?第一次听说?咋处理?这么神奇?
你问我为啥知道呢?因为本人用的是dbeaver:

dbeaver这个proxifier也劫持不了……
我也因为这个事情问过dbeaver的github,他们说:我们有代理功能,所以请用这个,至于为啥proxifier用不了,我们不知道的。
大佬就是大佬,说话好听。
总之一句话:只要你去东三省跑一趟,安装一个神器的小工具,然后你的电脑以后就用不了proxifier了。
有人说:你卸载了啊?
看我之前那一篇就可以了,很多开发写进去只管写,恢复是不可能恢复的。鬼知道啥业务逻辑,难道真杀一只程序员祭天?
给我们开发功能的主程傻了。在我们部门坐了2天,啥都没干(登不上内网干啥啊)。
第三天,把电脑扔给总部重装系统。(我们公司有规定,不能私自重装系统,只能给总部重装系统)
第四天回来了。这才找了个没人的地方开发功能去了。