`

[BUG排查日记]2012-06-04

 
阅读更多
    最近更新系统,在更新后遇到一个奇怪问题,在分析和解决这个问题过程感觉对我能力的提高有那么一丁点帮助,感觉离我的目标又近了一小步,于是blog记之。

1、遇到的问题
    更新系统后,遇到一个问题,新数据无论如何都读取不进来,而且本次更新的修改点不涉及新数据的读取逻辑,试试重启之后,依然无效,万分奇怪。

2、问题分析&定位
    我先到日志里面grep和tail了一番,非常神奇,完全没有新数据的日志。于是,通过ps -ef|grep java,我发现系统读数据的进程已经启动了的,但为啥一直没读进新数据呢?
    这个时候,我想起了jdk自带的工具jstack,我用jstack看了一下,发现一段mysql相关的数据库操作代码似乎有点异常,但我记得jstack可能只是表示某个瞬间的jvm运行情况,于是我重复几次执行jstack,发现这段数据库代码依然存在,因此我推想是mysql里面的问题。
    我在console里面登录到mysql,show processlist一下,发现有个select count(*) xx的sql处于sending data状态,这句sql正好和上面jstack发现的那段代码吻合,看来真是mysql里面的sql出问题了,疑似没创建索引什么的?
    再接着,我explain select count(*) xx,但结果提示有使用到索引啊,为啥还是那么慢,于是若干折腾了一下(这里大概10分钟吧,有点冤,我当时竟然没及时想到是另一个问题),我试试show create table xxx,接着恍然大悟,原来用错索引了,虽然有用到索引,但那个索引未能很好的和当前所用的where 条件匹配,毕竟这个索引本身不是给这条sql使用的。

3、问题解决
    有了2的基础,我在table里面另外create index yyy,然后再看看系统,新数据已经读取进来了。

    最后的总结:我觉得这次处理问题,在逻辑思维方面还比较弱,要继续努力,力求遇到问题时能第一时间有针对性的思考,追本溯源,要有理有据的解决问题。
分享到:
评论

相关推荐

    《研发日记,Matlab/Simulink避坑指南(二)-非对称数据溢出Bug》Demo工程

    在一个嵌入式软件项目中,需要对温度传感器采集的数据进行处理。传感器温度范围是-20到180℃,出现非对称数据溢出Bug,对其排查和优化。Demo工程如上。

    《研发日记,Matlab/Simulink避坑指南(六)-字节分割Bug》Demo工程

    在一个嵌入式软件项目中,需要将一组16位的数据,按照高低字节拆分成8位的。在使用Simulink中的Extract Bits模块构建字节分割子系统时出现了Bug,对其排查和优化。Demo工程如上。

    《研发日记,Matlab/Simulink避坑指南(三)-向上取整Bug》Demo工程

    在一个嵌入式软件项目中,需要对一个可变数组进行数据处理。要求是原始数据相邻四个合并在一起,在这个算法中需要对原始可变数组的lengh除4后向上取整。...该算法出现了整除多一的Bug,对其排查和优化。Demo工程如上。

    《研发日记,Matlab/Simulink避坑指南(七)-数据溢出钳位Bug》Demo工程

    在一个嵌入式软件项目中,需要将一个有符号数转换成无符号数,并把超出范围的值钳位在合理...在使用Simulink中的Data Type Conversion模块和Saturation模块,进行数据处理时出现了Bug,对其排查和优化。Demo工程如上。

    《研发日记,Matlab/Simulink避坑指南(五)-CAN解包 DLC Bug》Demo工程

    在一个嵌入式软件项目中,需要按照通信协议接收一帧CAN消息。在使用Simulink Library中的CAN Unpack模块进行解包时出现了报错,对其排查和优化。Demo工程如上。

    《研发日记,Matlab/Simulink避坑指南(四)-transpose()转置函数Bug》Demo工程

    在一个嵌入式软件项目中,需要对一个Matlab Function中的数组进行转置处理,要求是把一个行向量转换成列向量。在使用transpose()转置函数时出现了报错,对其排查和优化。Demo工程如上。

    安卓开发学习日记第五天——奇怪的bug出现了(VT-x说没就没)_莫韵乐的欢乐日记

    莫韵乐的这篇日记不仅记录了个人的学习历程,也提供了一个实用的故障排查指南,对于其他初学者来说,是非常有价值的参考资料。 在学习安卓开发的过程中,不断遇到并解决bug是提升技能的关键环节。每个开发者都会...

    乱了心情日记本单用户版 v3.0修正版

    在v3.0修正版中,开发团队对这些问题进行了深入排查和修正,确保UBB代码能正确解析,使用户可以使用丰富的格式来装饰自己的日记内容。 其次,表情符号系统得到了优化。在新版本中,表情符号采用了馒头符号,这为...

    j2ee OA 开发日记

    开发日记会涵盖部署配置、热更新和故障排查等内容。 10. **维护与升级**:OA系统上线后,需要持续监控性能、处理bug并进行功能迭代。版本控制工具如Git和敏捷开发方法论(Scrum、Kanban)在此过程中起到关键作用。 ...

    研发日记,Matlab/Simulink避坑指南(八)-else if分支结构BugDemo工程

    在一个嵌入式软件项目中,需要对一个信号进行分段处理。在Simulink的Matlab Funcyion模块中,使用else if并列分支结构时出现了Bug,对其排查和优化。Demo工程如上。

    计算机实习日记 (2).docx

    这通常意味着服务器遇到了一个未预期的异常,可能是由于配置错误、代码bug或者是数据库连接问题导致的。解决这类问题通常需要查看服务器日志以获取更具体的错误信息。在这个例子中,日志显示“数据加载失败”,暗示...

    numpy-1.23.1.tar.gz

    4. 错误修复:numpy团队会定期排查并修复已知的bug,以提高整体的软件质量,确保用户在使用过程中遇到的问题能得到及时解决。 5. 文档更新:更新的文档会提供更详尽的使用指南和API参考,帮助用户更好地理解和使用...

    有道云笔记突然出现乱码 日记变成乱码

    这可能是软件内部的bug或是与操作系统、键盘驱动程序之间的兼容性问题。如果只在特定条件下发生,比如在特定设备或浏览器上,那么可能需要更新相关的驱动程序或者尝试在其他环境下使用。若问题持续存在,建议用户向...

    selenium-2.38.3.tar.gz

    4. 报告与日志:利用第三方库(如Allure、Selenium-Grid)生成详细的测试报告,便于问题排查和测试结果分析。 六、Selenium 2.38.3的改进与限制 Selenium 2.38.3相较于早期版本,修复了一些已知的bug,提升了稳定...

    trouble.log:对日记进行故障排除,例如TIL,但积压了一些

    例如,如果`trouble.log`中出现大量关于某个特定功能的警告或错误,那可能表明这个功能存在性能问题或者存在未解决的bug。此时,我们需要按照以下步骤进行故障排除: 1. **阅读和理解日志**:逐行阅读日志,寻找...

    java定时收取邮件

    其次,详细日记的记录对于调试和问题排查至关重要。在实现定时收取邮件的过程中,我们应该添加日志记录机制,例如使用Log4j或SLF4J等日志框架,记录邮件接收的详细过程,包括连接状态、认证过程、邮件获取时间等信息...

    概要设计说明书1

    预设错误会向前端返回对应消息,未知错误则返回通用的错误信息,并记录到日志文件,方便后期排查修复。出错时,系统会执行数据回滚,避免错误影响系统状态。 综上所述,《概要设计说明书1》构建了一个全面的图书...

Global site tag (gtag.js) - Google Analytics