Linux 系统报错 rcu_preempt detected stalls on CPUs/tasks

说在前面的一些废话:

这是什么错误我不知道,为什么出现我不知道!

那为什么还要把他写出来了,只是因为这个错误遇到了,而且浪费了我很多时间和精力。

故事留给自己看,解决办法就是,重新升级一下Linux系统内核。

这个问题出现在Reboot之后,不能进入不了系统,平均发生几率是40次左右出现一次。

之后重新升级完内核后没有出现。至于内核改了什么我也不知道。

Linux 系统报错如下:

故事:

去年用C语言写的软件,过年客户才真正用起来,结果接二连三的出现死机的问题.

怀疑是自己的程序写的有问题,开始各种尝试,自己也做各种耐久验证,跑了半个月都没有发现问题。

对于这些问题,也问了工控机的厂商,他们说是环境会有影响。

然后是我们的各种验证,还好现场还有两个正常运行的机器,

基于小白的基本验证法则(对Linux系统仅限于简单命令的操作):

1.我们把正常的和异常的机器进行交换,结果3天都没事.

2.把我们验证好的盒子寄给现场,进行更换。结果2个小时就挂了。

这是什么结论???

还要就在我们要飞到现场的时候,现场把更换下来盒子寄给了我们。

不管Linux的专业知识水平怎么样,硬着头皮上吧!

就连同事也觉得可能验证不出来什么东西。

刚开始验证风平浪静,十几次种操作的验证,全都很正常,我也要放弃了,就像舌尖上的中国说的,“剩下的就交给时间了”。

一次不甘心的重启后,异常再现了。这时感觉好像,everything is contorl~~~很是兴奋!

这就是厂商的问题了,我很幸运,再十几次的就出了这个异常,因为再后面的验证中,反复重启100次才出了这个异常。

其实这并不是什么高深的技术,我也不清楚内核里面到底改了什么,这个问题的发生机制是什么,

也没有资格说厂商太不专业(因为我只是找到问题的人,最后解决问题的还是人家)?

只是记录一下,这件事带来的感触。

1.面对别人的质疑---只能先自我怀疑,再自我肯定

动不动别人就是说程序写的有问题,但没有找到其他原因,你又不能说没问题,只能一遍一遍的检查程序,偶尔想到什么就赶快改上去验证。

其实就是别人不说,我也在问自己到底那里的问题,只是一听别人这么说我就有点火。

但是真的很幸运现场有两台设备由于不是一批购买的,始终没有出现问题,慢慢的我对程序还是有信心了。

2.好的点子,都是慢慢熬出来的

那时候对自己也没有信心,不愿想这件事,但是每天都要面对,现场说又坏了,虽然别人不要你赔偿什么但总是感觉好像亏欠别人什么。

自己技术能力有限出现这个匪夷所思的问题,真的有种束手无策的感觉。这能从简单的验证下手,没想到解决了。

当然这些想法不是凭空出现的,对于我这种想了10来天才出现。

3.什么才是真正的技术---真正的技术是没有尽头的探究,但现实的问题可能没有那么复杂。

我这种三线程序的小程序员,只是技术上的搬运工,把别人现成的东西直接用。有些地方可能都没看懂,速成式的学习,一知半解的应用。

但是在现场真的不是那么轻松了,出问题就要解决。你要对一知半解付出代价的!

不过别慌,基本的逻辑法则还是通用的,简单的说:交换,再现,交给时间!

扩展来说:

交换排插原因,进行再现问题的各种模拟,如果短时间什么都不行只要别放弃,把问题交给时间肯定一天答案会出现再你面前!

对自己的程序需要不停的完善他,问自己那里还能做的更好!

原文地址:https://www.cnblogs.com/ccsharppython/p/10746373.html

时间: 2024-07-29 00:52:59

Linux 系统报错 rcu_preempt detected stalls on CPUs/tasks的相关文章

安装linux 系统报错:No DEFAULT or UI configuration directive found 解决方法

在报错信息后面的boot命令行输入: /isolinux/vmlinuz initrd=/isolinux/initrd.img 如果不行 重新输入 /isolinux/vmlinuz initrd=/isolinux/initrd.img xdriver=vesa nomodeset boot:/isolinux/vmlinuz initrd=/isolinux/initrd.img boot: /isolinux/vmlinuz initrd=/isolinux/initrd.img xdr

系统调优:如何解决系统报错too many open files瓶颈

一.检查系统版本是否手工升级 [[email protected] ~]# uname -r   linux的内核版本号 2.6.32-358.el6.x86_64 [[email protected] ~]# cat /proc/version Linux version 2.6.32-358.el6.x86_64  [[email protected] ~]# cat /etc/issue  系统安装时默认的发行版本 CentOS release 6.4 (Final) [[email pr

Linux下报错:Segmentation fault.

遇到的问题:程序在读文件之后,准备执行fclose(fp);时,出现了如下错误: Program received signal SIGSEGV, Segmentation fault. 解决方法:倒腾了好久,结果发现是一个小小的 & 在作祟. 原来把read( f, buff, nFileSize ) 写成了read( f, &buff, nFileSize ),多了一个 & ! 经验总结: 1.关于段错误(Segmentation fault): 所谓的段错误就是指访问的内存超

DELL 755行业用机安装windows 2003系统报错 0x0000007b

DELL 755行业用机用光盘安装windows 2003系统报错:0x0000007b 先放解决办法:将ACHI模式调整为ATA模式即可解决问题: 经过查阅网上资料,最终锁定如下帖子中说的有点道理, http://www.elecfans.com/jiadian/diannao/20121016292687.html [第三参考]安装widows XP时蓝屏代码0X0000007B的问题的解决方案用户在重新安装Windows XP的过程中,可能会出现安装过程中蓝屏,代码是0X0000007B的

C3P0在linux下报错:Name or service not known

CentOS监视Tomcat当前命令行输出 tail -f .../apache-tomcat-x.x.x/logs/catalina.out C3P0在Linux下的主要错误内容 31-Jul-2014 14:14:43.072 INFO [localhost-startStop-1] com.mchange.v2.c3p0.impl.C3P0ImplUtils.generateVmId Failed to get local InetAddress for VMID. This is unl

ios替换app启动图片时系统报错的解决办法

ios替换app启动图片时系统报错的解决办法:我个人建议是在开发时候经常行的保存项目,并且在修改项目图标图片.app启动图片前,一定要先备份一份没有添加这两项图片的项目. 如果您的项目已经开发完成了,进入到发布前添加项目图标.app启动图片的时候,一定要确定了这两项的所有图片不会更改了再去添加,否则更改已经添加好的加项目图标.app启动图片就会报错, 如果您报错了,百度之后也没有解决办法,那么就尝试在已经备份的项目中重新去添加图片就可以了.

linux 日志报错:error (unexpected RCODE REFUSED) resolving '

今天在机子上查看日志,偶然间发现了一堆错误.因为之前配置过DNS 和 squid,报错,之后查错,某度了一下,没找到答案. 下面是一点错误信息: Aug  8 11:40:30 host named[1668]: error (unexpected RCODE REFUSED) resolving '208.22.200.65.in-addr.arpa/PTR/IN': 74.115.231.45#53Aug  8 11:40:30 host named[1668]: error (unexpe

SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析

近日收到业务团队报的问题,说是对某个HU做转库时候,系统报错.如下图示: HU里有是三个序列号, 11911110340115 11911110340313 11911110340351 经查原因是HU里的序列号也同时出现在其它在库的HU里. SE16 + OBJK,去查这三个序列号的数据, 根据对象清单,查SER06表, 发现这三个序列号同时也出现在其它HU 00000000191141105132里,而这个HU还是在库状态, 解决办法是将那个HU拆掉,重新包装其它三个序列号,再去做转库就不会

linux mysql报错Access denied for user 'root'@'localhost' (using password: YES)

1.service mysqld stop停止mysql服务器 2.find / -name my.cnf 查找mysql配置文件的位置打开 3.在[mysqld]后添加skip-grant-tables 4.启动mysql :service mysqld start ————————————————版权声明:本文为CSDN博主「awake720」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/awake