Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198663
  • 博文数量: 44
  • 博客积分: 1326
  • 博客等级: 少尉
  • 技术积分: 392
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-08 10:14
文章分类
文章存档

2015年(3)

2013年(1)

2012年(38)

2011年(2)

分类: 系统运维

2015-02-15 17:18:29

故障描述:
上午发现dmesg里大量的sshd segfault at rip rsp error 4的错误:

sshd[30636]: segfault at 0000000000000000 rip 0000000008048f03 rsp 00000000ff867
570 error 4
was不能用,重启websphere后,下午报了一条错:
java[8106]: segfault at 0000000000000000 rip 00000000f7e44fe5 rsp 00000000697eb6e4 error 6
原因不明,看到message里有许多yum-updatesd的错误,kill掉yum进程.
操作系统 centos 5
内核2.6.18-92.el5 #1 SMP Tue Jun 10 18:51:06 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
应用程序 IBM websphere

故障分析:
这种信息一般都是由内存访问越界造成的,不管是用户态程序还是内核态程序访问越界都会出core, 并在系统日志里面输出一条这样的信息。这条信息的前面分别是访问越界的程序名,进程ID号,访问越界的地址以及当时进程堆栈地址等信息,比较有用的信息是最后的error number. 在上面的信息中,error number是4 ,下面详细介绍一下error number的信息:

在上面的例子中,error number是6, 转成二进制就是110, 即bit2=1, bit1=1, bit0=0, 按照上面的解释,我们可以得出这条信息是由于用户态程序读操作访问越界造成的。
error number是由三个字位组成的,从高到底分别为bit2 bit1和bit0,所以它的取值范围是0~7.

bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址

阅读(4508) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~