视频加载失败

记录一次线上问题排查

1021 字
5 分钟
记录一次线上问题排查

这是一个什么样问题?#

首先说明一下场景: 项目是一个采用vue3构建的应用,一直工作的好好的,但是今天测试那边突然说有几个页面打不开了,只要一点进去浏览器就会卡死.然后我们前端就在本地查看了下那几个页面,但是奇怪的是本地能运行的好好的,一到线上就拉闸,而且浏览器没有任何报错,这就很复杂了,这类本地无法复现的bug是最伤脑经的,因为某些原因几乎无法本地调试(以后要想个办法).

初步排查#

我们检查了一下那几个特定的页面,初步的试验了一下我们的想法,但最后都排除了这些可能.我们还想到昨天以及前些日子不是还好好的吗?我们就查看了下git记录,发现那些改动几乎不会影响到流程,都是些文字改动,但是为了确保真的不是这个引起的,我们还是尝试了回退,结果也的确如我们猜想,不是这些改动造成的.

好吧,那就只有慢慢排除了#

我们首先尝试了一下,将那几个页面替换为毫无逻辑,且模板简单的结构,打包部署上去发现还真没问题,好,看起来有路子.然后我们就一步一步的排查起走了,慢慢将页面还原,认为这样就能定位到问题所在了,几乎尝试了所有的可能,页面已经完全还原的情况下还是无法排查出问题.我靠,这是为啥?!百思不得其解啊.

转机#

就在我们无限霸屏Jenkins的几个小时后,同事一个想法冒了出来,我们要不要本地打个包让运维手动放到服务器上试试?”环境问题?""我想是的,试试看”.这一试,还真就是这个问题!然后我们思考了为什么会是这样,于是就发现项目里的*.lock的文件并没有被git追踪记录,那么服务器那边clone代码后,也是没有这个文件的,这就会造成一个问题是,包的版本是动态的,虽然我们使用”^“来锁定大版本,但是小版本之间的差异依然是存在的,可能就是这个原因造成的.那行动吧,我们让git追踪了这些lock文件,然后将它上传到了仓库.Jenkins部署后问题也不存在了.哇~感觉浪费了好多时间哦,要是一开始能想到这个问题多好,搞笑的是,我以前的项目明明遇到过这个问题,但是我居然没有想到会是这个问题.

总结#

编程的问题,大致是这样,如果一个问题你在你的范围内排查了很久,但是依然没有结果,你可能就需要跳出你的圈子来思考外部因素,换一种思路去思考问题.要结合你以往的经验来大胆猜想,并合理假设,然后加以验证来确认问题的所在.试想,如果没有同事这一句话,可能到下班的点,我们还在排查是不是代码问题.想想都觉得刺激~

但其实还有个问题是,我们发现这几个页面和其他页面一样,也没有什么特别之处,没有用到什么新的特性啊,奇怪的写法等等,但是就是有问题,但这个其实并不值得去深究,在前端工程化之后,每个工具链都有可能更新后出现问题(虽然这种几率在一些控制下很小),如果需要去排查这些构建工具上边的问题,那可是个体力活.我们今天知道了大致的原因其实就算成功了.

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

记录一次线上问题排查
https://slothvips.github.io/posts/ji-lu-yi-ci-xian-shang-wen-ti-pai-cha/
作者
panda
发布于
2023-03-09
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
panda
写前端,也写字。源码、工程实践和一些生活。
公告
欢迎来到 PandaBox。这里记录前端、源码阅读和一些生活。
分类
标签
站点统计
文章
31
分类
7
标签
65
总字数
51,812
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.9
文章许可
CC BY-NC-SA 4.0
文章目录