随笔分类 - 缺陷的背后
摘要:一. 僵尸进程 1.1 僵尸进程产生的原因 一个进程在调用exit命令结束自己的生命的时候,系统会回收内核分配给它的内存、关闭它打开的所有文件等等,但是还有信息,比如进程的ID号、进程的退出状态、进程运行的CPU时间(僵尸进程(Zombie)的数据结构)等还保留着,以供父进程使用。父进程按需使用后,
阅读全文
摘要:一: 缺陷引入 某日下午,测试组突然炸锅了,“为什么这台机器一下这么卡?”“为什么机器的cpu占用这么高?”“为啥这台机器的这个进程ps这么多?”“这么多进程未被主进程回收,这是僵尸进程啊”,后面该进程的相关测试人员一看,赶紧停了被测程序,机器恢复。 测试同学:主进程在wait释放子进程的“空壳”时
阅读全文
摘要:一:经典的“测试缺陷” 某日版本一如常规的发布上线,灰度过程中开发传来了一个“噩耗”,程序在操作数据库时有bug。 开发:第一笔数据插入都正常,第二笔数据插入就报重入了,报主键冲突,而实际这两笔数据的主键应该是不一样的,后面发现第一笔数据插入时的主键值是错误导致的。 测试:怎么会,在日志里打印的每条
阅读全文
摘要:序言 某日,开发哥哥一如往常的在线上发布版本,kill掉应用程序后启动新程序,程序启动后,应用程序就一直阻塞在某处,于是版本回退,重启旧版本,应用程序依旧阻塞在某处。pstack查看进程栈后发现,原来是第一次被kill掉的程序是运行在临界区时被kill的,而代码又有bug,在申请锁的时,未对这种情况
阅读全文
摘要:一、问题发现篇 最近组内做了一次典型缺陷分享时,翻阅2018年的缺陷,找到了一个让我觉得“有料”的bug(别的同事测试发现的),先大致简单的描述下这个问题: 需要实现的功能:从一个DB库同步某一段时间的数据到另一个DB库(简化后的需求)。 问题描述:一次同步20w条符合记录的数据,程序同步完成后,丢
阅读全文

浙公网安备 33010602011771号