bug 查找 (二) 从前端找到后端
bug 查找 (二) 从前端找到后端
几天来,组长说我们系统的 apm 数据不正确,最体表现就是前端项目这几天错误统计为 0。
这不正常(没有办法,我们代码写的很烂),因为前端环境很复杂,网络,浏览器都有可能出现错误,一天 100 多错误也是正常。
而 WebAPM 也是由我来写的,于是开始找 bug 之旅。
过程
因为代码是我写的,我在了解到问题的情况下,问了下线上环境是否有变化,回答是否定的,没有改;上线新功能没,回答也是没有上线新功能,只能定位到是自己写代码的问题。
找到与问题相关的代码了一下,(这个是谁写的代码),完全没有看懂,花去一些时间去熟悉代码,一上午就过去了
光看代码没有找到问题,下午要起动程序进行调试,分别是 nginx , 前端项目,后端项目,webapm 项目启来,发现 onerror 没有加载错误
然后找到代码查看,发现开发模式下,window.onerror 需要对脚本进设置成
crossorigin才能抓到 url。以为找到了问题,这个问题自己也找了一段时间。这个不是 bug 在生产环境下已经打开。然后找到 cookie 发现是通过 cookie 进行数据的保存的。发现 cookie 没有设置成主域名而是在 www 下,以为因为读不到,所以没有发,结果代码测式,可以发。
然后再到控制台进行模拟出错,然后提交,发现是可以的。
多次尝试发现数据库报错,某个字段报错。
组长才想起来运维组把数据库升级了,数据库升级了,数据库升级了。
然后解决问题,mysql 在旧版本时,字段类型是数字,你写入数据时可以写入空。但是新版不可以了。所以我们写入写入一个默认值 0.
解决问题总结
一天就解决这一个 bug,现在晚上进行一个总结和反思:
出现了问题,光凭看代码,没有想第一时间复现问题。这是自己的问题,虽然环境挺复杂,但也不是不能配。
基础知识不扎实,对 onerror 的作用范围不明确,对 cookie 的读写也不明确,导致错误查找很慢。
动手能力弱,碰到问题,总是希望不启动环境去解决问题。以后如果环境复杂就要想到如何去简化环境,然后复现问题。
问题还是在与组长的配合中解决的,组长的动手能力让我佩服。
现在想想,这个问题在本地架起了环境也解决不了问题,因为本地数据库与以前是一致的,跟线上是不一致的。
其实有很多机会去解决这个bug的,都没有抓住,在线上写数据时,日志太多没有抓到这条错误,而我们最后构造请求然后马上去看就发现了这个错误。
还是有很多的知识盲点没有学到,这要加油去学。
bug 查找 (二) 从前端找到后端的更多相关文章
- bug是前端还是后端
分析bug是前端还是后端的 如何分析一个bug是前端还是后端的? 平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文 ...
- 分析bug是前端还是后端的
如何分析一个bug是前端还是后端的? 平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug 这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数 ...
- 如何查看bug属于前端还是后端
1.F12下如何查看bug属于前端还是后端?前后端分离的项目,通过ajax向后端请求数据,如果后端返回的数据有问题,那么问题就是候选,如果返回的数据没有问题,但是展示结果异常那么问题一般就出在前端. ...
- [转载]Web前端和后端之区分,以及面临的挑战
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- Web前端和后端之区分,以及…
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- [转载]Web前端和后端之区分,以及面临的挑战【转】
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- Spring Boot +Vue 项目实战笔记(二):前后端结合测试(登录页面开发)
前言:关于开发环境 每位 Coder 都有自己偏好的开发工具,从大的方面划分主要有文本编辑器流和 IDE 流两种,我有一段时间也喜欢用编辑器(Sublime Text.Vim),但对我来说开发效率确实 ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- 看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)
1.前言 最近有同学问我有没有做过在线咨询功能.同时,公司也刚好让我接手一个 IM 项目.所以今天抽时间记录一下最近学习的内容.本文主要剖析了 WebSocket 的原理,以及附上一个完整的聊天室实战 ...
随机推荐
- 003-更改pip的源让下载安装更加快捷
1 找到pip目录 C:\Python36\Lib\site-packages\pip\models 2 修改下面的index.py文件 将url设定为 https://pypi.douban.com ...
- BZOJ_5418_[Noi2018]屠龙勇士_exgcd+excrt
BZOJ_5418_[Noi2018]屠龙勇士_exgcd+excrt Description www.lydsy.com/JudgeOnline/upload/noi2018day2.pdf 每次用 ...
- webpack 基本功能和原理
依赖管理:方便引用第三方模块.让模块更容易复用.避免全局注入导致的冲突.避免重复加载或加载不需要的模块. 合并代码:把各个分散的模块集中打包成大文件,减少HTTP的请求链接数,配合UglifyJS可以 ...
- yolo原理学习
1.[yolov1] 第一步:将图像划分为S*S的栅格(grid cell),这里分成了7*7的grid cell.栅格的任务是:检测中心落在该栅格中的物体(注意,栅格中心未必与物体的中心重合, ...
- java 整除(/) 求余(%) 运算
1. java 整除(/) 求余(%) 运算 1.求余 System.out.println(11%2); //顾名思义就是11除2的余数-->1 System.out. ...
- AI—家庭组机器人平台环境配置,高级人工智能实验总结
首先说一下我的环境:Ubuntu 12.04 32bit, gcc 4.6.3 一,安装boost 1.48,建议用这个版本的,不然会出现兼容性问题 步骤: 其实在ubuntu下,可以用一下命令直接 ...
- C++ 预处理指令 #pragma
http://www.cnblogs.com/qinfengxiaoyue/archive/2012/06/05/2535524.html
- 基于thinkphp5的Excel上传
涉及知识点: thinkphp5.0: excel上传: mysql建立新表(基本的create语句): mysql ignore(避免重复插入): 主要功能: 通过在视图中上传excel文件,在my ...
- 微信API接口文档
传送门
- unity模型法线反转问题
fbx模型导入unity正常 但只要绑了骨骼,在3dmax中正常,进入unity就法线反转 原因是3dmax中模型用到复制和镜像的导出需要多一步处理 1重置变换 2反转法线 按顺序进行这两个,在绑定模 ...