印象最深的一个bug——排查修复问题事件BEX引发的谷歌浏览器闪退崩溃异常
前言
- 最近,我们部门负责项目运维的小王频频接到甲方的反馈,运行的项目使用谷歌浏览器登录后,每次点击处理2秒后,浏览器自动闪退崩溃.小王同学折腾了一个星期,还没找到问题的原因.甲方客户都把问题反馈给项目经理了.项目经理给小王撂下狠话,“明天客户再给我打电话,你以后再也没机会穿拖鞋上班了..”
- 小王扰了扰头上剩在中间的头发,一脸委屈的看向我,无奈中透着一点深情
- “Chova大哥哥,你来帮我看看嘛~以后晚上陪你一起健身!”
- 看着他期待的目光,我心目不免一紧,哆哆嗦嗦地打开了他电脑上的谷歌浏览器...
问题一:问题事件BEX浏览器停止工作
- 点击项目中问题处置页面跳转后,光标出现转圈 ,2秒后弹框提示Google Chrome已停止工作

原因
- 软件中dll文件和浏览器发生冲突
解决
删除造成冲突的dll文件
- 点击查看问题详细信息,查看浏览器崩溃的问题签名
问题签名:
问题事件名称: BEX
应用程序名: chrome.exe
应用程序版本: 69.0.3497.100
应用程序时间戳: 5b9cbd4f
故障模块名称: BrowserUrl.dll
故障模块版本: 0.0.0.0
故障模块时间戳: 5f4b9830
异常偏移: 00004138
异常代码: c0000409
异常数据: 00000000
OS 版本: 6.1.7601.2.1.0.256.48
区域设置 ID: 2052
其他信息 1: 031a
其他信息 2: 031ac9a5aca2c7bab1c2347d68169e05
其他信息 3: e951
其他信息 4: e951aede12191034f862a087b85a801a
- 问题签名中的故障模块名称就是造成浏览器崩溃的dll文件
- 通过在浏览器导航栏中输入以下路径查看加载的dll文件位置:
chrome://conflicts/
- 将原来的dll备份到其余文件夹,用于后续恢复
- 在软件文件夹中删除软件中造成冲突的dll文件
修复造成冲突的软件
- 删除造成冲突的dll文件只是暂时解决浏览器停止工作的问题
- 因为dll文件时软件的运行依赖,如果随便删除会导致软件本身运行异常
- 如果想要彻底解决BEX问题事件,需要修复造成冲突的软件,大部分是软件本身存在问题,建议下载官方软件
问题二:谷歌浏览器闪退
- 点击项目中问题处置页面跳转后,光标出现转圈 ,2秒后浏览器闪退消失
- 项目部署在同一个服务器上,使用不同的计算机进行测试,问题只是在部分计算机中出现
原因
- 由于问题仅在部分电脑上出现,初步判定不是项目的问题,从系统方向排查问题
- 对无问题计算机和问题计算机,初步判定为问题计算机中的安全策略配置导致浏览器访问发生闪退崩溃的问题
解决
删除安全策略
- 进入控制面板点击用户账户查看当前用户为是否为管理员账户
- 进入C盘修改策略文件弹出框提示需要管理员权限
- 打开运行输入gpedit.msc打开本地策略组
- 进入到本地策略组中的用户账户控制以管理员批准模式控制其余账户
- 禁用用户账户控制, 重启计算机
- 开机后进入C盘直接删除操作文件
增加用户权限
- 在系统中的账户中查看当前用户账户
- 点击此电脑,选择属性中的安全选项卡,选中高级
- 更改当前用户账户为所有者并替换子容器和对象的所有者
- 在权限中添加当前用户账户的完全控制权限并继承
问题三:错误码STATUS_INVALID_IMAGE_HASH浏览器崩溃
- 谷歌浏览器崩溃,错误码为STATUS_INVALID_IMAGE_HASH
- 谷歌浏览器插件报错,并弹出错误提示框
原因
- Google Chrome在79版本中重新启用了渲染器代码完整性保护Renderer Code Integrity Protection. 这个会导致签名不是谷歌或者微软的模块被阻止加载
解决
禁用渲染器代码完整性保护功能
- 通过文件禁用渲染器代码完整性保护功能 (推荐) :
- 打开运行输入regedit进入注册表编辑器
- 进入文件夹 HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome 中
- 在右侧的窗口中,右键单击新建, 选择DWORD(32位)值创建新的密钥
- 双击新建的密钥,将值名称修改为RendererCodeIntegrityEnabled, 并将值数据输入为0
- 重启谷歌浏览器 - 使用命令禁用渲染器代码完整性保护功能:
- 打开运行,输入以下命令可以禁用渲染器代码完整性保护功能,其余功能禁用方式类似
shell chrome.exe --disable-features=RendererCodeIntegrity
总结
Windows检查事件日志
- 右键开始图标,打开事件查看器
- 点击应用程序和服务, 进入Microsoft => Windows => CodeIntegrity => 可操作
- 查找问题事件ID为3033的事件
- 点击问题事件的详细信息,会显示导致浏览器崩溃的dll文件的名称和位置
Google Chrome显示模块加载列表
- 在导航栏输入以下路径,可以显示加载的各个模块的信息:
chrome://conflicts/

一点思考
- 这个BUG是我目前修复的千千万万个项目的BUG中印象最深的一次BUG,由于问题事件BEX引发的谷歌浏览器闪退崩溃的异常问题.这个BUG因为其不可复现性导致特别难以发现和解决,正是由于这一次的BUG解决过程,让我了解到了一位攻城狮在项目开发维护过程中实际经验的重要性,多思考,多实践,多多积累经验,才是一位攻城狮的成长之路.
印象最深的一个bug——排查修复问题事件BEX引发的谷歌浏览器闪退崩溃异常的更多相关文章
- 印象最深的一个bug:sessionStorage缓存在移动端失效
无bug,不程序:作为程序员的我,不是修bug就是在写bug的路上. 移动端sessionStorage缓存失效是我"印象最深的一个bug"之一,为啥呢,因为这个问题导致我加班到很 ...
- 趣图:快下班了,剩一个bug,修复一下再走
趣图:当我给老板展示我修复了那个 bug 时 趣图:当我以为这是最后一个Bug时……
- SpriteKit游戏Delve随机生成地牢地图一个Bug的修复
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Delve是一个很有意思的地牢探险类型的游戏,其中每一关的地图 ...
- yarn client中的一个BUG的修复
org.apache.spark.deploy.yarn.Client.scala中的monitorApplication方法: /** * Report the state of an applic ...
- 【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型
mingus在输出midi文件的时候,使用这样的函数: from mingus.containers import NoteContainer from mingus.midi import midi ...
- iOS10相册相机闪退bug
iOS10系统下调用系统相册.相机功能,遇到闪退的情况,描述如下: This app has crashed because it attempted to access privacy-sensit ...
- tlplayer for ios V1.1.2加密测试版本(修复1.1.1版本 for ios7播放闪退问题)
此版本主要修复了ios7播放列表导致的程序闪退问题,方便大家测试加密与非加密视频. 此为tlplayer for ios版本,可以播放加密视频与非加密视频. 加密视频下载地址:http://blog. ...
- 测试工程师面试题之:给你印象最深的Bug
有人看到别人在侵淫面试技巧,什么<程序员面试宝典>,或者<面试测试工程师须知>等等,就会嗤之以鼻.他会觉得这不是“投机取巧”吗,最重要的还是踏实提高自己的能力. 非常同意这种看 ...
- 从修复 testerhome(rubychina)网站的一个 bug 学习 ruby&rails on ruby
前言 testerhome: http://testerhome.com/topics/1480 对于一个差点脱离前沿技术人,想要学习ruby,就意味着要放弃熟悉的操作系统windows,熟悉的ide ...
随机推荐
- Apache设置禁止访问网站目录
使用Apache作为Web服务器的时候,在当前目录下没有index.html|php等入口就会显示目录.让目录暴露在外面是非常危险的事. 找到Apache的配置文件 /etc/apache2/apac ...
- Jmeter系列(27)- 常用逻辑控制器(6) | 如果(if)控制器If Controller
如果(if)控制器(If Controller) 在实际工作中,当使用JMeter做性能脚本或者接口脚本时,当遇到需要对不同的条件做不同的操作时,我们可以使用JMeter中if控制器来实现 if控制器 ...
- 博客主题-Next风格
适配方法 下载压缩包,按照文件名将内容复制粘贴到对应框中即可. 注意事项 请将主题设置为custom 禁用默认css 下载连接 Next.rar version:2020-07-10 next.rar ...
- AVS 端能力之蓝牙模块
该类为蓝牙端能力处理类,主要负责蓝牙设备配对和蓝牙音频播放功能. 功能简介 实现蓝牙设备的启动发现模式.扫描蓝牙设备.建立蓝牙连接功能 实现蓝牙设备音频播放.停止.上一首.下一首功能 其它细节参考&l ...
- FastAPI(44)- 操作关系型数据库
ORM FastAPI 可与任何数据库和任何样式的库配合使用并和数据库通信 object-relational mapping 对象关系映射 ORM 具有在代码和数据库表(关系)中的对象之间进行转换( ...
- css 弹性盒子--“垂直居中”--兼容写法
使用弹性盒子兼容低端适配有时需要: display:flex 和 display:-webkit-box display: -webkit-box; -webkit-box-align: cent ...
- ubuntu Nginx+tomcat 部署web项目
最近学习了一下java web方面的知识,最后终于把项目部署到了阿里云服务器上,还是遇到了一些难点,记录总结一下 首先就是网上资料中,jdk都比较老了,最新的jdk14,没有了jre,这样导致了tom ...
- RAC使用auto rolling的方式打补丁
11.2.0.4 RAC 某系统主库使用auto rolling的方式打补丁在一节点执行1-5,结束后然后在二节点执行1-5,结束后最后再在某个节点执行6. 1.backup GI_HOME& ...
- MySQL MHA 运行状态监控
一 项目描述 1.1 背景 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能.MHA ...
- 6.堆和GC
一. 堆和GC介绍 1.java堆的特点 <深入理解java虚拟机>是怎么描述java堆的 Java堆(Java Heap)是java虚拟机所管理的内存中最大的一块 java堆被所有线程共 ...