bug的常见排查和分析思路以及相关的原因分类

news2024/11/15 20:02:34

作为开发人员,经常会收到来自用户和QA,领导反馈的各种问题。 为了快速问题,我们有时需要站在更高的角度,更全面的看待问题。才能更快锁定问题。

具体的bug还需要结合企业实际业务情况,相关的框架,依赖库,依赖api等,发布环境,发布配置,发布流程等问题 。

一、先上一些干货(bug排查中的常见原因分类)

二、排查定位的常见方法和定位思路.

 2.1一般根据异常提示或日志快速定位.

1)确定相关的异常提示是否能直接定位问题.

2)确定是否存在相关的应用日志,错误日志,操作系统日志,网络iis,apache,数据库日志,云服务日志等以便可以排查.

3)条件允许的情况下确定相同业务场景,相同用户,相同环境是否能重现.

4)确定是否有缓存问题.

浏览器缓存,cdn缓存等.

2.2无法直接定位时进行排除推理法.

1)确定版本(尤其对客户端app,api等有版本管理的地方适用).

   版本确定了则可以排查本版本的代码,配置,依赖库,发布环境,发布流程出现什么变更,然后依次排查。

2)确定问题出现的范围(用户范围,业务数据范围,新老数据范围).

    范围确定了则寻找相关的规律,从用户的角色,权限,历史数据,业务数据的状态(是否人工修改,是否因为没有事务导致不一致),是否涉及新处理不兼容老数据。

3)确定输入的业务数据本身是否有问题.

    确定输入,待处理的数据本身是否合理: 长度超过字段限制,内容被截断,tirm(), 乱码,编码,content-type,状态,过期,风控,  关联主体被禁用等.

4)查询已存在的知识库,bug管理系统,FQA等.

   借鉴历史反馈,解决方案,推测相关的处理办法。 

5)根团队确认近期公司的基础设施是否有变更( 网络环境,云服务,域名,cdn等服务商,api供应商,代理IP,安全策略等)

   会经常涉及到网络访问不通,禁止访问,缓存,重复访问,api不兼容等问题。

2.3对于莫名其妙的非正常问题.

1) 对于数据不合理,不正常,不一致,看起来无法因为代码引起的问题.

    考虑修改该数据是否有多个入口( web请求,job服务,  人工脚本修改,非事务操作导致的部分失败,sql注入,权限漏洞导致不相关的修改)

2)对于开发者那边正常,发布后不正常的问题.

    考虑环境是否一致(系统,浏览器,依赖组件,服务,硬件或云资源),  考虑是否因为混淆加壳导致代码异常或被杀毒软件拦截等。

 3)内存溢出的常见问题。

几个对象初始化形成了循环,属性形成了循环,  递归形成了循环, 线程锁死锁,同步方法内调用async方法, Task死循环, 存在只申请而不释放资源的处理, 存在释放的比较慢但申请的比较快的问题。

 4)对于微服务环境.

 k8s的老节点在Running,新节点还处于Pending状态.  加上一个负载均衡机制,会造成一个请求成功,下一个请求失败,循环交替或随机成功失败的问题。

 5)对于知道资源占用大户的进程,却不知道代码具体位置的。

   使用一些dump技术去分析观察。

 6)对于数据库访问压力大,cpu/内存占用高的问题.

   通过数据库日志,云数据库的慢sql统计,推荐办法等快速定位。  再就是要查看下相关的数据库配置是否合理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2039203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海康摄像头(测温型)桌面客户端开发分享

分享一个自己开发的用于企业特殊场景下温度监控告警的一个桌面应用。 关键功能: 1.支持海康摄像头; 2.支持多路视频预览,多通道画面选择预览,支持视频画面回放与下载; 3.支持自动探测摄像头功能,若具备…

RabbitMQ集群部署

RabbitMQ集群部署 简介 消息中间件RabbitMQ,一般以集群方式部署, 主要提供消息的接受和发送,实现各微服务之间的消息异步。 以下将介绍RabbitMQHA方式进行部署。 原理介绍 cookie ​ RabbitMQ底层是通过Erlang架构来实现的,所…

基于java五台山景点购票系统(源码+论文+部署讲解等)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优…

自建Gitlab和Gitlab runner并推送镜像到Harbor

1. 创建虚拟机 整体规划如下 1.1 创建3台虚拟机 系统版本Centos7.9 设置IP分别为 192.168.200.201 、192.168.200.202、 192.168.200.203 1.2 安装docker 3台虚拟机都安装docker,参考文章 安装docker 1.3 修改daemon.json 修改 /etc/docker/daemon.json 文件…

【数字信号处理】第3章 离散时间信号和系统的频域分析,系列的离散时间傅里叶变换,性质,定理(清华大学)

目录 第3章 离散时间信号和系统的 引言 信号和系统的分析方法有两种 模拟信号与系统的时域分析 模拟信号与系统的频域分析 离散时间信号和系统 历史回顾 3.1.1 序列的离散时间傅里叶变换 3.1.2 序列的离散时间傅里叶变换的性质 1. DTFT的周期性 2. 线性 3. 时移(位移…

守护网站心脏:HAProxy负载均衡技术详解(全网最详细)

守护网站心脏:HAProxy负载均衡技术详解 文章目录 **守护网站心脏:HAProxy负载均衡技术详解**haproxy介绍特点功能配置结论 haproxy负载均衡测试haproxy主机操作日志重定向操作 webserver1主机操作webserver2主机操作 haporxy相关配置测试backup参数测速h…

Petalinux 使用相关问题

文章目录 Petalinux 交叉编译环境Petalinux 以太网相关Petalinux 应用层写寄存器操作 Petalinux 交叉编译环境 方法一: 注意:该方法安装时会 和 Petalinux的 gcc-multilib 冲突; sudo apt install cmake sudo apt-get install gcc-arm-lin…

网络协议 十一 ARP,RARP,icmp,websocket,webservice,HTTPDNS,FTP,邮件相关的协议, SMTP,POP,IMAP

ARP 已知IP 求 MAC 的过程 RARP 已知MAC 求 IP 的过程,已被DHCP取代 ICMP websocket 协议,html5中提出的前端使用协议 webservice 技术,已过时 HTTPDNS 之前我们要获得 某一个域名的 IP ,要通过DNS协议 去 运营商的ISP 查询&…

Java | Leetcode Java题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; class Solution {public int countRangeSum(int[] nums, int lower, int upper) {long s 0;long[] sum new long[nums.length 1];for (int i 0; i < nums.length; i) {s nums[i];sum[i 1] s;}return countRangeSumRecursive(sum,…

我对意义产生了怀疑!当今社会,一个最基本的因果律(深度好文)——早读(逆天打工人爬取热门微信文章解读)

有时候热搜也是一种预示 引言Python 代码第一篇 洞见 当今社会&#xff0c;一个最基本的因果律&#xff08;深度好文&#xff09;第二篇 空仓结尾 引言 今天真的晚 不过今天会更新两篇 破事真的多 有些人真的很神奇 在你做的时候不断来干预你 然后做得一般的时候就说 你的计划…

计算机图形学 | 动画模拟

动画模拟 布料模拟 质点弹簧系统&#xff1a; 红色部分很弱地阻挡对折 Steep connection FEM:有限元方法 粒子系统 粒子系统本质上就是在定义个体和群体的关系。 动画帧率 VR游戏要不晕需要达到90fps Forward Kinematics Inverse Kinematics 只告诉末端p点&#xff0c;中间…

Simple RPC - 03 借助Netty实现异步网络通信

文章目录 Pre设计技术点1. 接口设计2. 命令类设计3. 异步通信4. 异常处理与超时机制5. 背压机制6. 响应处理 Code封装通信 Transport 接口抽象数据的请求和响应 Command关于版本号 Transport 接口实现类 NettyTransport兜底的超时机制 背压机制 实现 总结 Pre Simple RPC - 01…

ComfyUI中,“鼠标忽然不太好用了”的解决方案---新版本偶遇bug

&#x1f387;背景 这是个很奇怪的界面bug。 最近几天感觉Comfyui的界面操作不好用了&#xff0c;就是鼠标移动到一个节点上&#xff0c;如果想要缩放&#xff0c;按道理应该是在1的位置&#xff0c;但是需要移动到2的位置才能触发缩放的操作。 节点连线的时候&#xff0c;线…

图纸变更频繁,版本管理的高效方法

在工程设计领域&#xff0c;图纸作为设计与制造的核心载体&#xff0c;其变更频繁性已成为常态。如何高效地管理这些不断变化的图纸版本&#xff0c;确保设计信息的准确性和一致性&#xff0c;是每个设计团队面临的重要挑战。本文将探讨几种高效管理图纸版本的方法&#xff0c;…

工作绩效品谷系统2024(代码+论文+ppt)

工作绩效品谷系统2024((代码论文ppt),编号:sp009 代码经过修正,确保可以运行,下载地址在文末 技术栈: springbottvuemysql 展示: 下载地址: https://download.csdn.net/download/hhtt19820919/89639099 备注: 专业承接各种程序java,c,c,python,cuda,AI 专业承接论文指导…

haproxy详解

目录 一、haproxy简介 二、什么是负载均衡 2.1 负载均衡的类型 2.2.1 硬件 2.2.2 四层负载均衡 2.2.3 七层负载均衡 2.2.4 四层和七层的区别 三、haproxy的安装及服务信息 3.1 示例的环境部署&#xff1a; 3.2 haproxy的基本配置信息 3.2.1 global 配置参数介绍 3…

Java实战一 手动创建springboot3+mybatis+mysql工程

idea手动创建sb工程&#xff0c;选择好配置&#xff0c;使用jdk17 main下补全目录resource resource下补全application.yml 引入依赖 &#xff0c;写入父工程 刷新maven 补全配置 创建所需目录 创建User实体类 创建启动类BootDemoApplication 运行启动类成功看到运行在8080端…

java-activiti笔记

版本&#xff1a;activiti7 <dependency><groupId>org.activiti</groupId><artifactId>activiti-json-converter</artifactId><version>7.0.0.Beta2</version><exclusions><exclusion><groupId>org.mybatis</g…

2025年第五届国际计算机通信与信息系统会议(CCCIS 2025) 即将召开!

2025第五届计算机通信与信息系统国际会议&#xff08;CCCIS 2025&#xff09;将于2025年2月28日至3月2日在中国香港举行&#xff0c;本次会议由香港珠海学院主办&#xff0c;新加坡传感器与系统学会支持。CCCIS主要面向通信软件和网络领域的研究人员。它为这些领域研究人员之间…

springboot牙科就诊管理系统--论文源码调试讲解

2 相关技术 2.1 MySQL数据库 本设计用到的数据库就是MySQL数据库[3]&#xff0c;之所以用到这个数据库的原因很多。首先&#xff0c;从满足功能需求上面来讲&#xff0c;MySQL是符合的&#xff1b;其次&#xff0c;从学习程度来讲&#xff0c;MySQL相比其他数据库不管是从安装…