【问题】

有同事反应最近有多台MongoDB的服务器CentOS 7.1系统会自动重启,分析了下问题原因。

【排查过程】

1、 检查系统日志/var/log/message,并没有记录异常信息,journalctl相关日志只记录发生过重启

2、 系统默认配置了kdump,使用crash工具分析/var/crash下的转储文件vmcore,命令如下:

crash /usr/lib/debug/lib/modules/3.10.0-327.36.3.el7.x86_64/vmlinux /tmp/vmcore

3、 可以看到kernel crash时的Call Trace,关键信息标注为黄色字体

crash> bt

PID: 9979   TASK: ffff8804b4020b80  CPU: 2   COMMAND: "crond"

#0 [ffff8804b42db778] machine_kexec at ffffffff81051e9b

#1 [ffff8804b42db7d8] crash_kexec at ffffffff810f27e2

#2 [ffff8804b42db8a8] oops_end at ffffffff8163f448

#3 [ffff8804b42db8d0] no_context at ffffffff8162f561

#4 [ffff8804b42db920] __bad_area_nosemaphore at ffffffff8162f5f7

#5 [ffff8804b42db968] bad_area at ffffffff8162f91b

#6 [ffff8804b42db990] __do_page_fault at ffffffff81642235

#7 [ffff8804b42db9f0] trace_do_page_fault at ffffffff81642403

#8 [ffff8804b42dba28] do_async_page_fault at ffffffff81641ae9

#9 [ffff8804b42dba40] async_page_fault at ffffffff8163e678

[exception RIP: netlink_compare+11]

RIP: ffffffff815560bb  RSP: ffff8804b42dbaf8  RFLAGS: 00010246

RAX: 0000000000000000  RBX: 000000049f250000  RCX: 00000000c3637c42

RDX: 00000000000026fb  RSI: ffff8804b42dbb48  RDI: 000000049f24fb78

RBP: ffff8804b42dbb30   R8: ffff8804b42dbb44   R9: 0000000000002170

R10: 0000000000000000  R11: ffff8804b42db966  R12: ffff88061dcd2678

R13: ffff8804b42dbb48  R14: ffffffff815560b0  R15: ffff88061b639000

ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018

#10 [ffff8804b42dbb00] rhashtable_lookup_compare at ffffffff813080d0

#11 [ffff8804b42dbb38] netlink_lookup at ffffffff815569ee

#12 [ffff8804b42dbb68] netlink_getsockbyportid at ffffffff81557d8f

#13 [ffff8804b42dbb80] netlink_alloc_skb at ffffffff81557dff

#14 [ffff8804b42dbbb8] netlink_ack at ffffffff8155a8a9

#15 [ffff8804b42dbbf0] audit_receive at ffffffff811067e7

#16 [ffff8804b42dbc18] netlink_unicast at ffffffff8155a02d

#17 [ffff8804b42dbc60] netlink_sendmsg at ffffffff8155a420

#18 [ffff8804b42dbcf8] sock_sendmsg at ffffffff815112d0

#19 [ffff8804b42dbe58] SYSC_sendto at ffffffff81511841

#20 [ffff8804b42dbf70] sys_sendto at ffffffff815122ce

#21 [ffff8804b42dbf80] system_call_fastpath at ffffffff81646b49

RIP: 00007f4ac19d5353  RSP: 00007ffe233b1fb8  RFLAGS: 00010202

RAX: 000000000000002c  RBX: ffffffff81646b49  RCX: 0000000000000000

RDX: 000000000000009c  RSI: 00007ffe233b1ff0  RDI: 0000000000000003

RBP: 00007ffe233b1ff0   R8: 00007ffe233b1fe0   R9: 000000000000000c

R10: 0000000000000000  R11: 0000000000000246  R12: ffffffff815122ce

R13: ffff8804b42dbf78  R14: 000000000000044d  R15: 0000000000000001

ORIG_RAX: 000000000000002c  CS: 0033  SS: 002b

4、在网上搜索,定位到这是kernel Linux 3.10.0-327.36.3.el7.x86_64的bug,详细描述可以参见下面,该bug在 7.3 kernel (3.10.0-514.el7)后修复

https://bugs.centos.org/view.php?id=12012

5、 但考虑到升级系统成本较高,后面尝试定位触发条件,可以看到触发这个bug是crond命令

PID: 9979   TASK: ffff8804b4020b80  CPU: 2   COMMAND: "crond"

6、 借助systemtap工具,在发生crash的kernel函数上加探针,kernel.function("rhashtable_lookup_compare")

抓取到crond等系统命令确实会调用上面的函数

7、考虑到Mongo最近新上了一套系统监控的脚本是通过crontab调度的,而上监控之前服务器重启的情况很少,猜测可能是crontab调度系统监控采集触发了kernel bug

后面计划将采集脚本改为服务的方式观察是否可以规避触发bug

【结论】

由于已发现当前CentOS 7.1存在自动重启的bug,建议后面新上的linux服务器都采用CentOS7.4的系统

Description:   CentOS Linux release 7.1.1503 (Core)

Release:  7.1.1503

Linux 3.10.0-327.36.3.el7.x86_64

数据库运维经验分享&MySQL源码学习漫漫路

CentOS 7.1系统自动重启的Bug定位过程的更多相关文章

  1. Android 系统自动重启Bug(高通平台)

    点击打开链接 最近客户反馈了一个Bug,我们的系统用着用着会自动重启,尤其是在拨号的时候极容易死机或者进入下载模式.根据老大和高通的支持得到了一个解决方案. 在Android系统中,有这么一个文件夹: ...

  2. dell PowerEdge R720 自动重启分析

    dell PowerEdge R720 自动重启分析 摘要: 一,问题描述: 在同一批服务器当中,碰到这样一台服务器,如果不跑任何服务时没有问题,但一跑任务就是自动重启.既然同样的系统别的服务器都没出 ...

  3. Win10自动重启原因怎么查Windows10无故自动重启

    电脑偶尔自动重启,可能很少用户会在意,若电脑经常无故重启,那么应该怎么办,怎么查找电脑无故自动重启原因呢?下面就以Windows10系统自动重启为例,来查查WIN10无故重启是什么原因导致.百度经验: ...

  4. PHPWAMP自启异常,服务器重启后Apache等服务不会自动重启的原因分析

    在使用“PHPWAMP自动任务”时,不少学生遇到如下问题: “phpwamp绿色集成环境重启动电脑(服务器)后,不会自动启动网站服务” (如果是其他环境或是自己搭建时遇到此问题,也是可以用此法解决) ...

  5. 【破解】设置 Codesys for Raspberry 每118分钟自动重启Runtime

    Codesys for Raspberry 无授权时,试用2小时后会自动退出,重启Runtime后就又恢复2小时试用时长. 官网授权购买地址: [单核] https://store.codesys.c ...

  6. RookeyFrame Bug 编号显示 系统自动生成 的问题,有时候依旧会显示text文本框

    编号显示 系统自动生成 的问题,有时候依旧会显示text文本框 1.在线新建model -> 启用编码规则 -> 新建字段Code(主键) 2.跟Code字段 创建编码规则 3.新增菜单 ...

  7. win10关机之后自动重启(系统更新之后出现这个问题)

    最近更新了一把win10之后出现无法关机,关机之后直接又开机,无限循环状态.最近几天没空处理一直是强关笔记本下班的. 今天打了一把命令: shutdown /s /t 0 发现关机正常,本来打算整个脚 ...

  8. centos 监控进程,并自动重启

    编辑Crontab crontab -e 按i进行编辑 */ * * * * /root/monitor.sh # 每分钟运行一遍monitor.sh脚本 * * * /sbin/reboot # 每 ...

  9. 解决Android后台清理APP后,程序自动重启的问题

    最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启.现象很奇怪,有的手机(HTC)后台清理后,程序会再次重启,而有的手机(小米)则不会.猜想可能是小米手机内部做了处理, ...

随机推荐

  1. Django学习手册 - 登录装饰器

    # 装饰器定义 def auth(func): def inner(request,*args,**kwargs): v = request.COOKIES.get("user") ...

  2. 【Shell】带颜色输出(白底x色)

    echo -e "\033[31mHello World.\033[0m" 红色31m 绿色32m 黄色33m 蓝色34m 黑色30m 白色37m 紫色35m 深绿色36m

  3. nodejs的process模块如何获取其他进程的pid

    var cmd=process.platform=='win32'?'tasklist':'ps aux'; var exec = require('child_process').exec; var ...

  4. jvm系列一、java类的加载机制

    一.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构 ...

  5. oracle 11g 空表导出

    背景 oracle9用了一段时间,10用了一段时间,11现在算是主流了.11g也是坑人,空表竟然不导出,解决方法到时很多.这里只是记录下,知道有这个事情. 9的特点是还要用客户端管理工具链接服务器 1 ...

  6. 转载:abstract的方法是否可同时是static,是否可同时是native,是否可同时是synchronized?

    原文:http://blog.csdn.net/fhm727/article/details/5222965 1.abstract与static (what) abstract:用来声明抽象方法,抽象 ...

  7. Eureka 开发时快速剔除失效服务

    Spring Cloud 版本: Dalston.SR5 服务端配置: # 关闭保护机制 eureka.server.enable-self-preservation=false #剔除失效服务间隔 ...

  8. Android:ZoomControls控件

    ZoomControls控件 //_ZoomControls.java public class _ZoomControls extends Activity{ @Override protected ...

  9. Ex 5_33 实现一个关于公式长度(其中所有文字总的出现次数)为线性时间的Horn公式可满足性问题_第十次作业

    对于所有的蕴含式,生成一张有向图,对于每一个蕴含式,将左边的每一个文字连接到一个中间结点,并用中间结点记录蕴含式左边文字的数量,然后将中间结点连接到蕴含式的右侧结点.例如,对于蕴含式集合 生成的有向图 ...

  10. Vue项目之背景图片打包后路径错误

    第一种方法: 原因: 首先,出错点在url-loader上面. // url-loader配置 // build/webpck.base.conf.js { test: /\.(png|jpe?g|g ...