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 的原理,以及附上一个完整的聊天室实战 ...
随机推荐
- 什么是HTTP协议?
HTTP协议(超文本传输协议)位于TCP/IP协议栈的应用层.传输层采用面向连接的TCP HTTP请求详细过程
- 用css截取字符 css排版隐藏溢出文本
方法一: <div style="width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;& ...
- AndroidManifest中的Intent-filter标签
经过测试,intent-filter标签中的: 1. <action android:name="android.intent.action.MAIN" /> 代表这是 ...
- HihoCoder 1638 : 小Hi的天平 (2-sat+并查集)
描述 小Hi给小Ho邮寄了一个天平.收到天平后,小Ho想知道天平在运输过程中是否损坏,为此它准备了A类物品和B类物品共n个(可能只有A类物品,也可能只有B类物品),但无法确定一个物品是哪一类.A类物品 ...
- bzoj 4571 [Scoi2016]美味——主席树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4571 按位考虑,需要的就是一个区间:比如最高位就是(2^k -x). 对于不是最高位的位置该 ...
- 896C
ODT/珂朵莉树 原来这个东西很咸鱼,只能数据随机情况下nloglogn,不过作为卡常还是很好的 大概就是维护区间,值相同的并且连续当成一个区间存在set里,每次区间操作强行分裂就行了. 复杂度因为是 ...
- 机器学习之PCA主成分分析
前言 以下内容是个人学习之后的感悟,转载请注明出处~ 简介 在用统计分析方法研究多变量的课题时,变量个数太多就会增加课题的复杂性.人们自然希望变量个数较少而得到的 信息较多.在很 ...
- AngularJS系统学习之Factory,Service, Provider(工厂,服务,供应者)
本文转自:http://blog.csdn.net/zcl_love_wx/article/details/51404390 我看过敲过代码之后, 有了很深的理解, 这三个东西其实都是用来返回对象的. ...
- Identity Server 4 原理和实战(完结)_为 MVC 客户端刷新 Token
服务端修改token的过期使劲为60秒 过期了 仍然还能获取到api1的资源 api1,设置每隔一分钟就验证token 并且要求token必须要有超时时间这个参数, 1分钟后提示超时,两边都是一分钟, ...
- Identity Server 4 原理和实战(完结)_Resource Owner Password Credentials 授权实例
今天要讲的 用fiddler来监听,昨天的客户端的请求 这是一个post的请求 这是响应的数据 Expores_in超时时间, 今天的内容 在服务端再声明一个client端 wpf的应用的效果图 首先 ...