KernelBug

从一次内存泄露看程序在内核中的执行过程

当超群发来的问题,一个低端内存耗尽导致系统panic的问题,通过写一个死循环循环调用同一个脚本,然后盯着/proc/slabinfo看,就会发现size-32类型的slab火速增加。通过简单直接有效古老的排除法(感谢每日持续集成编译),确定是内核的问题,老的内核没问题,新内核有问题,本来直接上大神器,kmemcheck,奈何看了一眼内...

Glibc更新导致pthread_cond_timedwait失效

话说产品的大哥转过来一个定时器失效的问题,当时还以为是内核的定时器,到手一看,居然是产品代码中的一个自写的定时器没有生效,被告知是调用的系统接口,看着令人头痛的CPP代码,咨询之后才知道是ACE(Adaptive Communication Environment)框架,然后再次被人用小学学到的对比法把问题丢给了自己,苦命的搞了内核还...

内核bug导致Java进程CPU升高

内核SLES10SP3的老版本内核2.6.16.60-0.54.5也是使用了很长时间了,虽然之前也有一些bug,不过都是组内单个patch自己编译内核搞定问题的,虽然内核用的是SLES,但补丁却不是同步的,没办法,业务模式不同,卖出去的服务器又不能像windows一样,开个后门远程打补丁,只能慢慢积攒影响一般的补丁,最后搞一次大的,把内核...

reiserfs分区空闲8TB写文件提示磁盘空间不足

产品的老大直接找到了我:他们对reiserfs的一个分区写文件数据时返回失败,返回值是28,既是No space left on device,直接到产品环境上一看,12TB的空间用了不到10GB,自己顿时头大了,我一直对“设计精妙,代码残废”的reiserfs心怀敬畏(首席设计人员中途溜号,后面全靠开发人员脑补的复杂工程真是灾难),恰好还有其他...