Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Aug 1999 02:52:23 -0700 (PDT)
From:      spe@oleane.net
To:        freebsd-gnats-submit@freebsd.org
Subject:   kern/13488: panic: getnewbuf:
Message-ID:  <19990831095223.0BE81150AC@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         13488
>Category:       kern
>Synopsis:       panic: getnewbuf:
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 31 03:00:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Sebastien Petit
>Release:        FreeBSD-3.2-STABLE
>Organization:
Oleane
>Environment:
FreeBSD ldap.gen.oleane.fr 3.2-19990830-STABLE FreeBSD 3.2-19990830-STABLE #0: Mon Aug 30 15:09:35 CEST 1999     spe@ldap.gen.oleane.fr:/usr/src/sys-3.2-19990830-STABLE/compile/RADLDAP  i386

>Description:
The system panic when a program do multiples access on nfs mounted directory.
ie: a program that fork 120 times and do "open" "seek" "write" "close" on this "NFS directory"
this program write file of 20 Mo
but after 2 seconds FreeBSD panic with panic: getnewbuf: cannot get buffer, infinite recursion failure with simple user access
This program work fine on netbsd & linux.

trace:
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-unknown-freebsd".
(kgdb) symbol-file /usr/src/sys/compile/RADLDAP/kernel.debug
Reading symbols from /usr/src/sys/compile/RADLDAP/kernel.debug...done.
(kgdb) exec-file /var/crash/kernel.5
(kgdb) core-file /var/crash/vmcore.5
IdlePTD 2723840
initial pcb at 22eb74
panicstr: getnewbuf: cannot get buffer, infinite recursion failure
panic messages:
---
panic: getnewbuf: cannot get buffer, infinite recursion failure

syncing disks... panic: getnewbuf: cannot get buffer, infinite recursion
failure

dumping to dev 20001, offset 272816
dump 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111
110 109
 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88
87 86 8
5 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62
61 60 59
58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35
34 33 32
 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7
6 5 4 3
 2 1
---
#0  boot (howto=260) at ../../kern/kern_shutdown.c:285
285                     dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0  boot (howto=260) at ../../kern/kern_shutdown.c:285
#1  0xc012f87c in at_shutdown (
    function=0xc02075f1
<__set_sysctl__vfs_sym_sysctl___vfs_kvafreespace+361>,
    arg=0x200, queue=1174437888) at ../../kern/kern_shutdown.c:446
#2  0xc014dc9f in getnewbuf (vp=0xcc1edb40, blkno=2293824, slpflag=0,
    slptimeo=0, size=8192, maxsize=8192) at ../../kern/vfs_bio.c:1074
#3  0xc014e58c in getblk (vp=0xcc1edb40, blkno=2293824, size=8192,
slpflag=0,
    slptimeo=0) at ../../kern/vfs_bio.c:1511
#4  0xc014cd85 in bread (vp=0xcc1edb40, blkno=2293824, size=8192,
cred=0x0,
    bpp=0xcc3acbec) at ../../kern/vfs_bio.c:282
#5  0xc01b60f8 in ffs_update (vp=0xcc21ea40, waitfor=0)
    at ../../ufs/ffs/ffs_inode.c:98
#6  0xc01ba92f in ffs_fsync (ap=0xcc3acc74) at
../../ufs/ffs/ffs_vnops.c:258
#7  0xc01b8cb7 in ffs_sync (mp=0xc1d01c00, waitfor=2, cred=0xc0756300,
    p=0xc0246624) at vnode_if.h:499
#8  0xc0155f37 in sync (p=0xc0246624, uap=0x0) at
../../kern/vfs_syscalls.c:549
#9  0xc012f43d in boot (howto=256) at ../../kern/kern_shutdown.c:203
#10 0xc012f87c in at_shutdown (
    function=0xc02075f1
<__set_sysctl__vfs_sym_sysctl___vfs_kvafreespace+361>,
    arg=0x2000, queue=12443648) at ../../kern/kern_shutdown.c:446
#11 0xc014dc9f in getnewbuf (vp=0xcc243280, blkno=1519, slpflag=0,
slptimeo=0,
    size=8192, maxsize=8192) at ../../kern/vfs_bio.c:1074
#12 0xc014e58c in getblk (vp=0xcc243280, blkno=1519, size=8192,
slpflag=0,
    slptimeo=0) at ../../kern/vfs_bio.c:1511
#13 0xc017b9fa in nfs_getcacheblk (vp=0xcc243280, bn=1519, size=8192,
    p=0xcc36f700) at ../../nfs/nfs_bio.c:904
#14 0xc017b5a5 in nfs_write (ap=0xcc3acec8) at ../../nfs/nfs_bio.c:765
#15 0xc0159dea in vn_write (fp=0xc1d40d40, uio=0xcc3acf10,
cred=0xc1d36300,
    flags=0) at vnode_if.h:331
#16 0xc013a73a in dofilewrite (p=0xcc36f700, fp=0xc1d40d40, fd=3,
    buf=0x804b000, nbyte=102400, offset=-1, flags=0)
    at ../../kern/sys_generic.c:363
#17 0xc013a643 in write (p=0xcc36f700, uap=0xcc3acf94)
    at ../../kern/sys_generic.c:298
#18 0xc01e6edb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 0,
      tf_esi = 12384951, tf_ebp = -1077945584, tf_isp = -868560924,
      tf_ebx = 12384951, tf_edx = 0, tf_ecx = 12384951, tf_eax = 4,
      tf_trapno = 7, tf_err = 2, tf_eip = 671700396, tf_cs = 31,
      tf_eflags = 582, tf_esp = -1077946192, tf_ss = 39})
    at ../../i386/i386/trap.c:1100
#19 0xc01dda5c in Xint0x80_syscall ()
#20 0x8048799 in ?? ()

Another probleme is that FreeBSD is very slow when this program is launch.
NetBSD and linux doesn't slow down and complete the bench.
>How-To-Repeat:
<Where can I send you the code ???>

Exemple:
root@ldap:~> mount 194.2.203.100:/nfs /TEST

root@ldap:~> mount
/dev/wd0s1a on / (local, writes: sync 14 async 3095)
/dev/wd0s1f on /usr (local, writes: sync 10010 async 13997)
/dev/wd0s1e on /var (local, writes: sync 177 async 1319)
procfs on /proc (local)
194.2.203.100:/nfs on /TEST

root@ldap:~> ./nfsbench /TEST-nfs 120 100 20000 100

panic: getnewbuf: cannot get buffer, infinite recursion failure
>Fix:
don't know how to fix the problem !

>Release-Note:
>Audit-Trail:
>Unformatted:
 cannot get buffer, infinite recursion failure
 X-Send-Pr-Version: www-1.0
 
 cannot get buffer, infinite recursion failure


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990831095223.0BE81150AC>