热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

修复一个Bug竟耗时两天?真的有那么复杂吗?

修复一个Bug竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的Bug为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。

点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

 
  • 原创 | Java 2020 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

来源:网络

  • @条件状语从句

  • @王杰

  • @fire wind

  • @知乎网友

  • @树下一条河

  • @知乎用户

  • @玉临轩

  • @weishuo1999

  • @知乎用户


在 Quora 上有一个和 Bug 相关的热门问答帖:《What's the hardest bug you've debugged? | 你调试过的最难 Bug 是?》。

我大中国的程序员攻城师们遇到最难调试的bug是什么呢?

本文整理了程序员调试Bug的种种传奇经历。

@条件状语从句

写JS,自己手机没电了,拿同事老张的安卓机调试,很简单的获取用户微信昵称,结果死活获取不到,一直显示为null。应该是跨平台问题,因为之前在自己iPhone上是没有bug的,拼命看api文档,但是都没提到这方面。急死我了。

刚刚老张告诉我他的昵称就是null。

@王杰

百分之百出现的bug都是好bug,多线程里的有些bug能重现已经是一个惊喜了。。。

@fire wind

从前做一个嵌入式的项目,调试工具巨难用而且随机挂掉,也没有core dump,只能手工添加printf看日志调试bug。有一天出现了一个bug,查看打印日志,修改,第二天同样的bug又出现了,但是在不同的源码处。继续添加日志,查看,修改,这过程重复了n次,每次出现bug的位置都不一样。我突然醍醐灌顶,查看了下printf的源码............tnnd谁把printf函数给重载了,写入还不做校验,会写到别的内存位置上去。就像是我拿个锤子到处敲地鼠,地鼠其实住在锤子里.........

@知乎网友

难倒计算机系同学的三大问题 3.为什么上不去网 2.为什么电脑打不开 1.为什么电脑这么慢

@树下一条河

最难调的BUG就是,策划:“感觉不对。”

@知乎用户

某医院部署的网络,不定期会有半夜断网或者不稳定情况,但天亮就会恢复,客户投诉抱怨。

调试过程:现场查看全部网络硬件正常,查看log发现有一台汇聚交换机有反复重启动作,在重启前有高温告警。于是重点关注该机器。

该机器放在一个机柜中,机柜在一个小储藏间的角落里,储藏间不大,一边还摆着张破沙发,正好可以坐着用电脑调机器,但是实在查不出什么可疑情况会导致过热,因为投诉等级较高,于是连夜蹲守。

第一夜无事。第二夜无事,到半夜,忽然进来个小护士,吓一跳,说,哟怎么有人啊,然后就走了。一夜无事。第三夜无事,到半夜,又来个小护士,探头看一眼走了。一夜无事。第四夜无事。于是告诉院方,发现问题马上打电话,回家。第五夜出事,赶到时已是早上,网络已经正常,查看log发现还是过热告警重启,时间在半夜3点多。联想到前几天的小护士,于是问院方半夜是否有人进入,答一些值夜班的护士会偶尔在里面休息。

于是找到进去的小护士,问是否动交换机,答没有,问进去后做了些什么动作,答只是睡觉。再追问,除此之外呢?答:就是那个排风扇太吵,睡觉的时候把电源拔了。

她把机柜的冷却排风扇电源拔了!她把机柜的冷却排风扇电源拔了!她把机柜的冷却排风扇电源拔了!她以为就是个通气风扇!

居然睡醒走了还知道再插回去 〒_〒 你有胆拔插头你倒是别插回去啊…

@玉临轩

以前写个小程序 一直没反应,检查了每一行,没问题, 代码都重写了好几遍还是不行。好几天都没有解决这个问题 最后索性不管它,过了一星期,拿出来用,竟然TM自己好了!自己好了!好了!

@weishuo1999

我之前是做电商的,某较大的电商平台,突然有一天,C2C的店主反馈,看到的订单不是自己的,看到后台的商品列表也不是自己的。

当时在睡午觉,看到这个问题,立马吓醒了,平时5个投诉就是一个故障单,那还都是一点体验上的小问题,这种订单混乱,商品混乱的错误,真是要紧急死了

于是,主管,总监都来看这个问题,一群大佬在后面看着,赶紧找最近几天的发布,测试情况,一个个回退,一个个检查,最后都无法解决问题,要知道时间一分一秒过去,半个小时还解决不了就要出大事了

后续又有用户来投诉,直接电话联系,远程控制电脑,发现操作起来巨慢,于是顺口问了一下用户的网络是什么网络。

结果他说是:“某城宽带”,一瞬间,有点感觉了,继续问其他几个投诉的客户都是“某城宽带”,然后我们打电话到那个宽带的运营商,得到的回复是“年底了,为了省流量,他们做了一部分缓存”

他们做了缓存 做了缓存 缓存 存

可是为毛TM的动态请求还做缓存啊,修改商品和订单的时候,随机返回成功或者失败。

@知乎用户

做设计以来遇到的最大bug就是曾经老板祭出的必杀技!老板:这个感觉不对! 本工:哪里感觉不对?老板:体现不出雅致那种情怀~ 本工:能具体点么... 老板:你是设计师! 你问我?本工:...



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。


推荐阅读
  • 在iOS平台上,应用的流畅操作体验一直备受赞誉。然而,过去开发者往往将更多精力集中在功能实现上,而对性能优化的关注相对较少。本文深入探讨了iOS应用性能优化的关键要点与实践方法,旨在帮助开发者提升应用的响应速度、降低功耗,并改善整体用户体验。通过具体案例分析和技术解析,文章提供了实用的优化策略,包括代码层面的改进、资源管理优化以及界面渲染效率的提升等。 ... [详细]
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 消息功能:ExchangeOnline中的电子邮件和日历功能Mac用户可以使用如下客户端程序来访问自己的ExchangeOnline邮箱和日历:*Mic ... [详细]
  • 分布式一致性算法:Paxos 的企业级实战
    一、简介首先我们这个平台是ES专题技术的分享平台,众所周知,ES是一个典型的分布式系统。在工作和学习中,我们可能都已经接触和学习过多种不同的分布式系统了,各 ... [详细]
  • 一文了解消息中间件RabbitMQ
    消息中间件---RabbitMQ1消息中间件的作用2.常用的消息中间件3消息中间件RabbitMQ3.1RabbitMQ介绍3.3RabbitMQ的队列模式3.3RabbitMQ的 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 深入解析队列机制及其广泛的应用场景
    本文深入探讨了队列机制的核心原理及其在多种应用场景中的广泛应用。首先,文章详细解析了队列的基本概念、操作方法及其时间复杂度。接着,通过具体实例,阐述了队列在操作系统任务调度、网络通信、事件处理等领域的实际应用。此外,文章还对比了队列与其他常见数据结构(如栈、数组和链表)的优缺点,帮助读者更好地理解和选择合适的数据结构。最后,通过具体的编程示例,进一步巩固了对队列机制的理解和应用。 ... [详细]
  • 概况:我要怎样o找到设备o位置?o感应动作?o感应设备o方位?o独特地定义设备o? ... [详细]
author-avatar
手机用户2602921437_525
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有