cvs commit: src/sys/kern kern_lockf.c

Joerg Sonnenberger joerg at britannica.bec.de
Tue May 11 08:22:53 PDT 2004


On Tue, May 11, 2004 at 07:59:29AM -0700, Matthew Dillon wrote:
> 
> :Matt, lf_destroy_range called with accounting == 0 doesn't follow any
> :pointer in the range, it just uses the values directly. This is not the
> :bug which corrupts the memory.
> :
> :Joerg
> 
>     Noooooo.  Damn.  I thought I had it, but you are right.  That can't be
>     it.

In fact, I thought about using M_ZERO first, but since the range is
always explicitly initialized before being put into the lists, I didn't
do that.

> 
>     I still believe that the issue is related to the lockf code, somewhere.
>     It's the only thing that fits the reports.

You could try stress testing the lockf code with the test case I commited,
but after reading through the whole code, I'm at least sure it doesn't
follow any pointer it should not. I'm going through the other changes later,
there is a lot which has changed. Anyway, I fully agree on the kernel update,
since the other problems e.g. at are fixed.

> 
>     Maybe the problem is more indirect... the earlier bug I had fixed was
>     the error return code from lf_setlock().... it was returning success
>     even if it failed.  But the only way that could cause system corruption
>     would be if it had an adverse effect on something like X, and I don't
>     see how.

It could lead to corruption e.g. of a database, but not of a filesystem.
There aren't that many users of POSIX locks in the base system.

Joerg

> 
> 					-Matt
> 					Matthew Dillon 
> 					<dillon at xxxxxxxxxxxxx>





More information about the Commits mailing list