Bug #1985

panic: reassignbuf: dup lblk vp 0xffffffe0136df000 bp 0xffffffe00df730b0

Added by y0n3t4n1 over 3 years ago. Updated over 3 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Hello.
Caught this panic this morning during `hammer cleanup' on a Atom D510
based system with 4G bytes of RAM installed and running x86_64 kernel.
It was running pbulk at the same time. The kernel was built from source
s of 8d2576868. The `insufficient buffers to rebalance the tree' warnings
have been observed before the system panicked. The global variable nbuf
(which holds the value for vfs.nbuf sysctl node) contains 1475 in the kgdb
session, which is much lower than the value seen on other systems running
32-bit kernel.

:
Feb 9 05:05:09 atom64 kernel: hammer: System has insufficient buffers to rebalance the tree. nbuf < 3969
Feb 9 05:19:01 atom64 kernel: hammer: System has insufficient buffers to rebalance the tree. nbuf < 3969
Feb 9 05:27:23 atom64 syslogd: kernel boot file is /boot/kernel/kernel
Feb 9 05:27:23 atom64 kernel: panic: reassignbuf: dup lblk vp 0xffffffe0136df000 bp 0xffffffe00df730b0

And the backtrace follows:

#4 0xffffffff802a9c1e in panic (
fmt=0xffffffff80530140 "reassignbuf: dup lblk vp %p bp %p")
at /usr/src/sys/kern/kern_shutdown.c:799
#5 0xffffffff8031262f in reassignbuf (bp=0xffffffe00df730b0)
at /usr/src/sys/kern/vfs_subr.c:1046
#6 0xffffffff802fa526 in bundirty (bp=0xffffffe00df730b0)
at /usr/src/sys/kern/vfs_bio.c:1247
#7 0xffffffff802fe705 in bawrite (bp=0xffffffe00df730b0)
at /usr/src/sys/kern/vfs_bio.c:1025
#8 0xffffffff802fe98a in vfs_bio_awrite (bp=0xffffffe00df730b0)
at /usr/src/sys/kern/vfs_bio.c:1937
#9 0xffffffff802fedae in flushbufqueues (q=BQUEUE_DIRTY)
at /usr/src/sys/kern/vfs_bio.c:2694
#10 0xffffffff802ff041 in buf_daemon () at /usr/src/sys/kern/vfs_bio.c:2525
#11 0xffffffff8029961e in suspend_kproc (td=0x0, timo=0)
at /usr/src/sys/kern/kern_kthread.c:189
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(kgdb) fr 5
#5 0xffffffff8031262f in reassignbuf (bp=0xffffffe00df730b0)
at /usr/src/sys/kern/vfs_subr.c:1046
1046 panic("reassignbuf: dup lblk vp %p bp %p",
(kgdb) l
1041 buf_rb_tree_RB_REMOVE(&vp->v_rbdirty_tree, bp);
1042 bp->b_flags &= ~B_VNDIRTY;
1043 }
1044 if ((bp->b_flags & B_VNCLEAN) == 0) {
1045 if (buf_rb_tree_RB_INSERT(&vp->v_rbclean_tree, bp)) {
1046 panic("reassignbuf: dup lblk vp %p bp %p",
1047 vp, bp);
1048 }
1049 bp->b_flags |= B_VNCLEAN;
1050 }
(kgdb)

Best Regards,
YONETANI Tomokazu.

History

#1 Updated by ahuete.devel over 3 years ago

Hi Yonetani,

There was a correction on February 3th specifically for x86_64. I
don't know if that's related to the panic somehow or not, but
definitely for the rebalance issue you're having.

http://gitweb.dragonflybsd.org/dragonfly.git/commit/7a3eee88d3ffab887e1b2d812672f20071d39947

Cheers,
Antonio Huete

2011/2/9 YONETANI Tomokazu <>:
> Hello.
> Caught this panic this morning during `hammer cleanup' on a Atom D510
> based system with 4G bytes of RAM installed and running x86_64 kernel.
> It was running pbulk at the same time.  The kernel was built from source
> s of 8d2576868.  The `insufficient buffers to rebalance the tree' warnings
> have been observed before the system panicked.  The global variable nbuf
> (which holds the value for vfs.nbuf sysctl node) contains 1475 in the kgdb
> session, which is much lower than the value seen on other systems running
> 32-bit kernel.
>
>                                :
>  Feb  9 05:05:09 atom64 kernel: hammer: System has insufficient buffers to rebalance the tree.  nbuf < 3969
>  Feb  9 05:19:01 atom64 kernel: hammer: System has insufficient buffers to rebalance the tree.  nbuf < 3969
>  Feb  9 05:27:23 atom64 syslogd: kernel boot file is /boot/kernel/kernel
>  Feb  9 05:27:23 atom64 kernel: panic: reassignbuf: dup lblk vp 0xffffffe0136df000 bp 0xffffffe00df730b0
>
> And the backtrace follows:
>
> #4  0xffffffff802a9c1e in panic (
>    fmt=0xffffffff80530140 "reassignbuf: dup lblk vp %p bp %p")
>    at /usr/src/sys/kern/kern_shutdown.c:799
> #5  0xffffffff8031262f in reassignbuf (bp=0xffffffe00df730b0)
>    at /usr/src/sys/kern/vfs_subr.c:1046
> #6  0xffffffff802fa526 in bundirty (bp=0xffffffe00df730b0)
>    at /usr/src/sys/kern/vfs_bio.c:1247
> #7  0xffffffff802fe705 in bawrite (bp=0xffffffe00df730b0)
>    at /usr/src/sys/kern/vfs_bio.c:1025
> #8  0xffffffff802fe98a in vfs_bio_awrite (bp=0xffffffe00df730b0)
>    at /usr/src/sys/kern/vfs_bio.c:1937
> #9  0xffffffff802fedae in flushbufqueues (q=BQUEUE_DIRTY)
>    at /usr/src/sys/kern/vfs_bio.c:2694
> #10 0xffffffff802ff041 in buf_daemon () at /usr/src/sys/kern/vfs_bio.c:2525
> #11 0xffffffff8029961e in suspend_kproc (td=0x0, timo=0)
>    at /usr/src/sys/kern/kern_kthread.c:189
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
> (kgdb) fr 5
> #5  0xffffffff8031262f in reassignbuf (bp=0xffffffe00df730b0)
>    at /usr/src/sys/kern/vfs_subr.c:1046
> 1046                                    panic("reassignbuf: dup lblk vp %p bp %p",
> (kgdb) l
> 1041                            buf_rb_tree_RB_REMOVE(&vp->v_rbdirty_tree, bp);
> 1042                            bp->b_flags &= ~B_VNDIRTY;
> 1043                    }
> 1044                    if ((bp->b_flags & B_VNCLEAN) == 0) {
> 1045                            if (buf_rb_tree_RB_INSERT(&vp->v_rbclean_tree, bp)) {
> 1046                                    panic("reassignbuf: dup lblk vp %p bp %p",
> 1047                                          vp, bp);
> 1048                            }
> 1049                            bp->b_flags |= B_VNCLEAN;
> 1050                    }
> (kgdb)
>
> Best Regards,
> YONETANI Tomokazu.
>

#2 Updated by y0n3t4n1 over 3 years ago

On Wed, Feb 09, 2011 at 07:56:42AM +0000, Antonio Huete Jimenez (via DragonFly issue tracker) wrote:
>
> Antonio Huete Jimenez <> added the comment:
>
> Hi Yonetani,
>
> There was a correction on February 3th specifically for x86_64. I
> don't know if that's related to the panic somehow or not, but
> definitely for the rebalance issue you're having.
>
> http://gitweb.dragonflybsd.org/dragonfly.git/commit/7a3eee88d3ffab887e1b2d812672f20071d39947

... Or maybe the fix (by you) to hw.physmem, which definitely appears
wrong now :) I'll try the kernel with those fixes in.

$ sysctl hw.physmem hw.usermem
hw.physmem: 132812800
hw.usermem: 4241985536

Thanks.

#3 Updated by y0n3t4n1 over 3 years ago

Resolved by one or more of recent commits, probably either 7a3eee88 or 39d69dae .

Also available in: Atom PDF