From: Manfred Spraul I found one tasklist corruption that might explain some (but not all) slab corruption messages with the taskstruct_cache: de_thread calls list_del(¤t->tasks), but current->tasks was never added to the task list. The structure contains stale values from the parent. I've added the attached debug check, and it oopsed in de_thread. Unfortunately I know that at least one report was with glibc-2.2.5 :-( 25-akpm/fs/exec.c | 1 - include/linux/list.h | 0 2 files changed, 1 deletion(-) diff -puN fs/exec.c~de_thread-fix fs/exec.c --- 25/fs/exec.c~de_thread-fix Mon Apr 21 15:45:01 2003 +++ 25-akpm/fs/exec.c Mon Apr 21 15:45:01 2003 @@ -673,7 +673,6 @@ static inline int de_thread(struct task_ __ptrace_link(current, parent); } - list_del(¤t->tasks); list_add_tail(¤t->tasks, &init_task.tasks); current->exit_signal = SIGCHLD; state = leader->state; diff -puN include/linux/list.h~de_thread-fix include/linux/list.h _