事情是这样的,昨天下午本人正在苦逼的搬砖,旁边的同事突然说有台服务器的防火墙无法启动了。昨天该同事一直在补每台服务器的防火墙规则漏洞,发现这台服务器的防火墙规则和配置文件中的不一样,就想重启一下结果无法启动了。

以前也遇到过系统上正在运行的防火墙规则和配置文件的不一致,一般都是重启下防火墙就可以了,这台服务器估计是上架后没有注意一直没有发现,所以就想补下这个漏洞。

然后我就上服务器操作了下,service iptables restart 没反应,一直卡在“应用防火墙规则”这一步,service iptables status 提示没有加载防火墙模块,第一个反应就是模块不知怎么的没有了,那就手动加载下呗,

modprobe ip_tables 没反应,停掉。仔细一想,防火墙启动的时候会自动加载相关模块,没有模块是因为防火墙没有启动,那为什么手动加模块没有反应呢。找日志,一般这么妖的问题系统日志总能找到一点蛛丝马迹。

具体日志如下:

INFO: task modprobe:29339 blocked for more than 120 seconds.

Not tainted 2.6.32-431.el6.x86_64 #1

"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

modprobe      D 0000000000000009     0 29339      1 0x00000080

ffff880202857e48 0000000000000086 ffffea0005e17460 ffffffff810129de

ffff880202857dd8 ffffffff811238d1 ffffffff8100bb8e ffff880202857e48

ffff8802bc5c05f8 ffff880202857fd8 000000000000fbc8 ffff8802bc5c05f8

Call Trace:

[<ffffffff810129de>] ? copy_user_generic+0xe/0x20

[<ffffffff811238d1>] ? probe_kernel_write+0x41/0x70

[<ffffffff8100bb8e>] ? apic_timer_interrupt+0xe/0x20

[<ffffffff810555dd>] ? mutex_spin_on_owner+0x8d/0xc0

[<ffffffff8152907e>] __mutex_lock_slowpath+0x13e/0x180

[<ffffffffa01f4000>] ? ip_tables_init+0x0/0xb0 [ip_tables]

[<ffffffff81528f1b>] mutex_lock+0x2b/0x50

[<ffffffffa01f4000>] ? ip_tables_init+0x0/0xb0 [ip_tables]

[<ffffffff8145709d>] register_pernet_subsys+0x1d/0x50

[<ffffffffa01f4015>] ip_tables_init+0x15/0xb0 [ip_tables]

[<ffffffff8100204c>] do_one_initcall+0x3c/0x1d0

[<ffffffff810bc531>] sys_init_module+0xe1/0x250

[<ffffffff8100b072>] system_call_fastpath+0x16/0x1b

时间点比较吻合,根据关键字百度了下,有个人碰到一样的问题,系统日志也极其相似,说是有2个iptables的操作造成死锁了。

文章链接: http://www.ithao123.cn/content-8293762.html

这时候我就仔细问了下同事的操作过程,同事说下完service iptables restart后防火墙一直没有重启完成在等待某个进程的响应,就把这个命令给kill了,再执行service iptables restart就不行了。

那就去看下是否有相关进程卡住了,top后发现有个进程的状态一直是R的状态,根据我的理解(不知道对不对)进程的状态一般都是S(interruptible sleep),这个R状态的进程有点异常,根据top里面的该进程的command去ps果然发现了一个与防火墙相关的异常进程

#ps aux|grep modprobe

有一个加载防火墙内核的进程状态为D,不可中断的睡眠进程,所谓D,就是不接收任何外来信号的进程。果然kill、kill -9 都无法杀死这个进程。处于uninterruptible sleep状态的进程通常是在等待IO,比如磁盘IO,网络IO,其他外设IO。那会不会是IO等待引起的呢。这时候使用iotop去观察服务器的IO情况,并没有发现该进程有大量的IO操作,同时检测NFS的状态也是正常的,那么就不是IO等待引起的。

这个进程到底卡在哪一步了,执行 ps axopid,comm,wchan | grep modprobe

发现进程运行到register_pernet_subsys这一步,搜了下相关资料,register_pernet_subsys就是防火墙启动加载内核模块这一步.

参考资料:http://blog.chinaunix.net/uid-20786208-id-5132450.html

这时候又生一计,这个进程杀不死,那能不能把该进程的父进程给kill了呢,ps一样发现进程的父进程ID居然是1。

正常情况下,子进程被终止时会通过 SIGCHLD 信号通知父进程,父进程可以做一些清理工作或者重新启动一个新的进程。但在某些情况下,父进程会在子进程之前被终止,那么这些子进程就没有了“父亲”,被称为孤儿进程。
init 进程会成为所有孤儿进程的父进程。init 的 pid 为1,是Linux系统的第一个进程,也是所有进程的父进程。

如果把PID为1的进程给kill了,那这个系统基本就瘫痪了。

所以折腾到最后的结果是,只能reboot系统才能解决这个问题。

转载于:https://blog.51cto.com/s8576/1769007

一次防火墙无法重启的排查过程和总结相关推荐

  1. 【排查过程】计算机蓝屏重启问题

    问题: - 每次蓝屏的时间段范围在[15,30] 分钟;即平均每隔半个小时蓝屏一次; - 蓝屏提示代码:DRIVER_IRQL_NOT_LESS_OR_EQUAL(或其他代码) 我的电脑具体情况: - ...

  2. nuc970 网络问题排查过程

    1. 问题简介 多台公设备重启过程中出现网络无法使用问题,使用ifconfig查看网络节点此时没有收到任何包,并且重启机器也存在无法恢复问题. 图1.1 异常后ifconfig信息 2. 排查过程 查 ...

  3. 实战派:一次kafka卡顿事故排查过程!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 等你归去来 来源 | www.cnblogs. ...

  4. 干货!一次kafka卡顿事故排查过程

    由于一次功能上线后,导致某数据量急剧下滑,给我们紧张的呢!排查过程也是个学习过程!抛开结果,方法论可供参考- 1. 确认问题的真实性? 被数据部门告知,某数据量下滑严重,当时即知道问题的严重性.且该问 ...

  5. 一次堆外内存泄露的排查过程

    转载自  一次堆外内存泄露的排查过程 最近在做一个基于 websocket 的长连中间件,服务端使用实现了 socket.io 协议(基于websocket协议,提供长轮询降级能力) 的 netty- ...

  6. 记一次线上服务假死排查过程

    大家好,我是烤鸭: 最近线上问题有点多啊,分享一个服务假死的排查过程. 问题描述 9点10分,收到进程无响应报警(一共6台机器,有1台出现),后来又有1台出现. 排查思路 首先确认是否误报或者网络抖动 ...

  7. mysql 5.7 延迟同步_MySQL5.6升级5.7时出现主从延迟问题排查过程

    最近在做zabbix的数据库MySQL5.6升级5.7时,出现主从延迟问题,这个问题困扰了很久没有解决,昨天终于解决了,整理了一下整个排查过程,分享给大家. 环境说明: mysql主库为5.6的版本, ...

  8. mysql5.6 主从 延迟_MySQL5.6升级5.7时,出现主从延迟问题排查过程

    最近在做zabbix的数据库MySQL5.6升级5.7时,出现主从延迟问题,这个问题困扰了很久没有解决,昨天终于解决了,整理了一下整个排查过程,分享给大家. 环境说明: mysql主库为5.6的版本, ...

  9. Doom流量回放工具导致的测试环境服务接口无响应的排查过程

    Doom流量回放工具导致的测试环境服务接口无响应的排查过程 现象描述: a)部分接口(A组接口)无响应 b)部分接口(B组接口)正常响应 c)还有一部分接口(C组接口),场景1无响应,场景2正常响应 ...

  10. 修改服务器端口后防火墙要设置吗,服务器设置完防火墙需要重启吗

    服务器设置完防火墙需要重启吗 内容精选 换一换 代码迁移工具进行代码迁移时,需要调用Linux下的rpm.deb等命令才能完成扫描和迁移相关任务,这些命令和逻辑必须在后端Linux运行.IDE插件只支 ...

最新文章

  1. 黑科技,教你用Python打电话,控制手机技术,快来学一下
  2. 由event target引发的关于事件流的一连串思考(二)
  3. 51Nod-2149子串水题find
  4. shell脚本中28个特殊字符的作用简明总结
  5. php把excel转化为csv,php xls如何转csv
  6. python从socket做个websocket的聊天室server
  7. 求一份100行左右的C语言程序,求4个C语言程序 每个100行左右 大一水平的
  8. java多台_Java 多态
  9. 以太网帧格式、最少字节介绍(arp)
  10. OpenStack securityGroup rule Set
  11. python开发人员看什么书_python初学者看什么书
  12. 鬼才!我居然把 Vue3 的原理用到了 React 上?
  13. intouch sqlserver_intouch 连接modbus 。转存数据库方法
  14. 机器人也能打排球了,击球成功率80%!日本东京大学新型气动仿人机器人
  15. Android开发-图片跟着鼠标移动,获取鼠标值
  16. 计算机常用工具软件实训总结报告,计算机常用工具软件实训报告
  17. androidStudio开发安卓APP的五种框架布局界面设计
  18. python实现动态规划0-1背包问题
  19. 图深度学习——复杂图嵌入:异质图,二分图,多维图,超图,符号图,动态图
  20. hadoop2.6伪分布+pig0.15+zookeeper3.4.6安装

热门文章

  1. 第二阶段团队站立会议02
  2. Jan 11 - Contains Duplicate II; Array; Traverse; HashMap; HashSet;
  3. 技术分析淘宝的超卖宝贝
  4. form空白及iframe空白处理
  5. Ubuntu System Panel:Ubuntu 系统的新概念菜单
  6. 类序列化之后保存在COOKIES里
  7. java中String字符串
  8. 【ABAP系列】SAP DOI技术中I_OI_SPREADSHEET接口的使用
  9. Linux-socket使用
  10. 【bzoj1593-预定旅馆】线段树维护连续区间