hammer does cache_lock

Matthew Dillon dillon at apollo.backplane.com
Mon Sep 8 15:07:34 PDT 2008


:> I prepared the subdirectory for the mail service using the master-slave pfs.
:...
:> Ok, the problem is now, that (for the second  time) some files are
:> blocked, I get following messages in my logs:
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:> [diagnostic] cache_lock: blocked on 0xd7b9d3c8 "group"
:> [diagnostic] cache_lock: blocked on 0xd7b9d3c8 "group"
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:> [diagnostic] cache_lock: blocked on 0xd7cce058 "dovecot.index.log"
:>
:> The email-account containing this file isn't usable anymore when this
:> file is locked. When I try to access e.g. the group file (from dspam) my
:> console freezes.

    Hi Damian.  This looks like a bug in HAMMER.  The namecache must
    be deadlocking.

:Addition:
:The reboot solved the problem for now but it kernel-panicked with
:following message:
:
:Waiting (max 60 seconds) for system thread syncer to stop...stopped
:syncing disks... 932 932 932 932 932 932 932 932 932 932 932 932 932 932
:932 932 932 932
:giving up on 1 buffers
:Debugger("busy buffer problem")
:Stopped at Debugger+0x34: movb $0,in_Debugger.3949
:db>
:So I did send reset to the debugger.
:
:Damian

    This is probably due to the same bug.

    If it is possible I would like you to generate a kernel core the
    next time the cache_lock problem occurs.  You can avoid the buffer
    sync issue with:

	sysctl kern.sync_on_panic=0

    You need to set up a dump device to get a kernel core dump.  Typically
    a line in /etc/rc.conf like this does the job:

	dumpdev="/dev/ad6s1b"

	(assuming you have a swap partition on /dev/ad6s1b that is large
	enough to hold all of main memory).

	This will set the dump device on boot.  To set it manually without
	rebooting you would run 'dumpon /dev/ad6s1b' or something similar.

    If you can get a kernel crash dump and email me privately where I can
    download it, I can examine it and hopefully find the bug.

    The way you get a kernel core is you wait for the problem to occur,
    then you drop into the debugg and manually panic the machine.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Kernel mailing list