Cache-lock.

Matthew Dillon dillon at apollo.backplane.com
Sat Oct 2 20:14:11 PDT 2004


:
:[kaktus at apocalypse] [ttyv1] [/] cd /compat/linux
:[kaktus at apocalypse] [ttyv1] [/compat/linux] ls
:[diagnostic] cache_lock: blocked on lib
:
:after this ttyv is complete locked, ^C, ^Z etc. don't work.

    All right, from various bug reports I have reproduced the
    cache-lock issue and I am working on a fix.   It could take a while,
    I am also fixing some lookup synchronization issues that cause buildworld
    to fail.

    Basically the deadlock is due to the new API trying to resolve a
    namecache node, holding a locked namecache record and trying to lookup
    the vnode, while at the same time the old API is holding a locked vnode
    and is trying to enter the file with cache_enter().  They trip over 
    each other and, poof, deadlock.

    There are also namespace issues with, e.g. buildworld.  If you get weird
    failures, like files that the system thinks don't exist but which plainly
    do exist, or vise-vesa, I have also reproduced that one and I am fixing
    it at the same time.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Bugs mailing list