说在前面的一些废话:

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

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

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

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

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

Linux 系统报错如下:

故事:

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

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

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

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

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

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

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

这是什么结论???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

扩展来说:

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

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

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

  1. 双核CPU,跑程序会报rcu_sched_state detected stalls on CPUs/tasks 错误

    有一份SDK,之前跑在PPC405EX上没问题。最近换平台,CPU使用了PowerPC的P1020,双核。linux版本也升级到了3.0.48版本。升级之后出现了一个问题:SDK里面的程序跑一段时间之 ...

  2. 虚拟机启动linux系统报错,此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态

    在使用虚拟机启动linux的时候报错,如下: 已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态. ...

  3. linux系统报错日志学习

    linux本身会自动记录系统报错日志:/var/log/messages 这个日志记录,我是在什么时候发现其强大的作用的呢?它有点像我们使用php脚本开发接口的时候技术员在重要地方打日志的效果,方便技 ...

  4. VMware安装linux系统报错:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

    检测问题所在: 下载LeoMoon CPU-V 检查一下CPU VT-x状态是否启用 地址:http://download.csdn.net/detail/qq_22860341/9858011 如果 ...

  5. linux 终端报错 Out of memory: Kill process[PID] [process name] score问题分析

    从Out of memory来看是内存超出了,后面的 Kill process[PID] [process name] score好像和进程有关了,下面我们就一起来看看linux 终端报错 Out o ...

  6. Linux 下报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must解决方案

    一.报错环境:在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Linux 下报错:A Java RunTime Environment (JRE) or Jav ...

  7. SAP QA32 做使用决策系统报错:分类数据的不一致性=>交易终止

    SAP QA32 做使用决策系统报错:分类数据的不一致性=>交易终止 QA32,对如下检验批做处理,系统报错, 试图使用MSC3N去显示这个批次主数据,同样报错, 原因在于批次的分类数据产生后, ...

  8. linux ssh 报错failed - POSSIBLE BREAK-IN ATTEMPT

    linux ssh 报错failed - POSSIBLE BREAK-IN ATTEMPT 问题故障: 今天在新租的虚拟机上,发现ssh登陆机器的时候报错,如下: [root@pictures_ne ...

  9. PHP+mysql系统报错:PHP message: PHP Warning: Unknown: Failed to write session data (files)

    PHP+mysql系统报错:PHP message: PHP Warning:  Unknown: Failed to write session data (files) 故障现象,后台页面点击没有 ...

随机推荐

  1. HTTP Status 500 - Error instantiating servlet class cn.it.bd.S011

    HTTP Status 500 - Error instantiating servlet class cn.it.bd.S011 出现此报错的很大可能是因为 <servlet-class> ...

  2. jmeter学习随笔

    1.jmeter配置环境是需要注意jdk版本,不同的jdk版本可支持运行不同版本的jmeter,对应关系如下图 2.HTTP请求和HTTP默认请求的区别 若一个项目中会多次调用相同的接口域名及端口号, ...

  3. EEG 睡眠 节律 代码

    a1=load('EEG01.txt');[c,r]=size(a1);z=10;%等于几,绘图起点从几开始s=256*z;%绘图起点;还有,这里的256是采样率d=floor(c/256);cn=d ...

  4. js实现软键盘

    <p><img id="img" onclick="javascript:var s=document.createElement('script'); ...

  5. Egret_简单的封装方法

    ////////////随机颜色***////////////////////////// private getRdmClr(): number { return (Math.floor(Math. ...

  6. linux压缩、解压缩和归档工具

    linux基础之压缩.解压缩和归档工具 1.压缩工具 基本介绍 为了减少文件的原来的文件大小而过多的浪费磁盘的存储空间,我们使用压缩后多文件进行存储 压缩工具的介绍 compress:把文件压缩成以. ...

  7. spring 动态代理

    突然想到AOP,就简单回忆一下动态代理.1.什么是动态代理? 假如有个用户有增删该查4个方法,如果要对用户操作后进行日志记录,可能会有人说直接在增删改查后做日志记录就行. 一旦我想在用户操作之前加一个 ...

  8. 寒假作业 pta编程总结3

    实验代码: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕 ...

  9. Python基础:十、用户交互

    使用input()函数,可以让我们和计算机互动起来 a. 等待输入 b. 将输入的内容赋值给前面的变量 c. input()接受到的内容永远是字符串 变量 = input("提示信息&quo ...

  10. 【缓存】介绍和使用场景 MEMCACHE REDIS

    缓存缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去数据库进行操作,而去内存中取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度比去数据库查询要快一 ...