Re: [PATCH] SYSVIPC - Fix the ipc structures initialization

From: Manfred Spraul
Date: Thu Nov 13 2008 - 12:54:09 EST


Nadia Derbey wrote:
That's what the patch I sent at the beginning of this thread
(http://lkml.org/lkml/2008/10/28/177) fixes: the ipc structure is not
completely initialized before being inserted in the tree.

The patched kernel has been running for 4 days on my victim without any
problem, but Clement is still facing a problem (that comes later).

I think this patch should be included anyways, because ipc structures
initialization is not correct the way it is done today.

Definitively: Your patch belongs into 2.6.28 and the next 2.6.27.

I'm still reviewing the code to see what else could be wrong.
I started looking into the idr code: perhaps idr returns a stale entry? A race somewhere in the RCU code.
I.e. the new bug is not corruption due to access before spin_lock_init(), but due to access after kfree()?

Clement: Could you send us an ipcs output from before the test?
Do you have any sysv msg queues on your system?
And: Do you use PREEMPT, do you use PREEMPT_RCU?

If there are no message queues around, then every msgget()/IPC_RMID will create a new idr layer/tear the layer down again.

--
Manfred
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/