Date: Sun, 21 Feb 1999 18:32:09 -0800 (PST) From: Matthew Jacob <mjacob@feral.com> To: Luoqi Chen <luoqi@watermarkgroup.com> Cc: dfr@nlsystems.com, freebsd-hackers@FreeBSD.ORG Subject: Re: Panic in FFS/4.0 as of yesterday - update Message-ID: <Pine.LNX.4.04.9902211828530.4408-100000@feral-gw> In-Reply-To: <199902212353.SAA12884@lor.watermarkgroup.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > On Sun, 21 Feb 1999, Matthew Jacob wrote: > > > > > > > > Sorry to say that during testing last night (in the middle of which a > > > buildworld got started) the system paniced again with a 'panic: getnewbuf > > > infinite recursion failure'. I've left it in the debugger if anyone could > > > suggest looking at something. I'm going to New Orleans tomorrow so it can > > > sit in the debugger until Friday... > > > > > > A very cursory look at the code makes me wonder 'why the value of 5 for a > > > limit'? It doesn't seem to me a panic is a good solution. > > > > Apart from the use of 5 as a 'magic' number, this code doesn't cope with > > being reentered by another process - the recursion test needs to be on a > > per-process basis. I'm sure that if you check the stack trace, you won't > > see any kind of recursion happening. > > > What troubled me here is why these supposedly async writes block (and ccd > is not involved)? I'd really like to see a dump of ps listing from ddb. Ask and ye shall receive (some 'Mores' editted out): panic: getnewbuf: cannot get buffer, infinite recursion failure panic Stopped at Debugger..ng+0x24: ldq ra,0(sp) <0xfffffe0007ef99f0> <ra=0xfffffc00004c5c58,sp=0xfffffe0007ef99f0> db> $c ? db> t Debugger..ng() at Debugger..ng+0x24 panic..ng() at panic..ng+0xf0 getnewbuf..ng() at getnewbuf..ng+0x424 getblk..ng() at getblk..ng+0x3e0 ffs_balloc..ng() at ffs_balloc..ng+0xa50 ffs_write..ng() at ffs_write..ng+0x384 vn_write..ng() at vn_write..ng+0x160 write..ng() at write..ng+0x12c syscall..ng() at syscall..ng+0x1dc XentSys() at XentSys+0x50 (null)() at 0x120000fe8 db> ps axl Symbol not found db> ps pid proc addr uid ppid pgrp flag stat wmesg wchan cmd 14173 fffffe0007b44f80 fffffe0007f5e000 0 12549 4274 004004 2 make 14164 fffffe0007b45b60 fffffe0007f98000 31154 14163 13374 004004 2 ld 14163 fffffe0007b4a040 fffffe0007b86000 31154 14148 13374 004084 3 wait fffffe0007b4a040 cc 14148 fffffe0007b45dc0 fffffe0007f94000 31154 13374 13374 004084 3 wait fffffe0007b45dc0 make 13377 fffffe000707b900 fffffe0007b04000 0 13372 147 004184 3 piperd fffffe0007a4ee40 sendmail 13374 fffffe0007b496c0 fffffe0007b98000 31154 13372 13374 004084 3 wait fffffe0007b496c0 sh 13372 fffffe0007b48fa0 fffffe0007bac000 0 147 147 000084 3 piperd fffffe0007a4f620 cron 12549 fffffe0007b46020 fffffe0007f5a000 0 12545 4274 004084 3 wait fffffe0007b46020 sh 12545 fffffe000707da40 fffffe0007ac4000 0 90946 4274 004084 3 wait fffffe000707da40 make 10908 fffffe0007b47580 fffffe0007efa000 31154 770 10908 004006 3 getblk fffffe00044537f0 writeit 10907 fffffe0007b49920 fffffe0007b94000 31154 770 10907 004006 3 getblk fffffe00044640f0 writeit 10906 fffffe0007b4b0e0 fffffe0007b62000 31154 770 10906 004006 3 getblk fffffe00044a2ff0 writeit 10905 fffffe000707d0c0 fffffe0007ad4000 31154 770 10905 004006 3 getblk fffffe0004470460 writeit 10904 fffffe0007b45900 fffffe0007f9c000 31154 770 10904 004006 3 getblk fffffe0004470460 writeit 10903 fffffe000707b1e0 fffffe0007b10000 31154 770 10903 004006 3 nfsrcvlk fffffe0007a55b00 writeit 10902 fffffe0007b47320 fffffe0007efe000 31154 770 10902 004006 3 nfsrcvlk fffffe0007a55b00 writeit 10901 fffffe000707d7e0 fffffe0007ac8000 31154 770 10901 004006 3 getblk fffffe0004483d68 writeit 10900 fffffe0007b49460 fffffe0007b9c000 31154 770 10900 004006 3 getblk fffffe0004470460 writeit 10899 fffffe0007b48ae0 fffffe0007bb6000 31154 770 10899 004006 3 nfsrcvlk fffffe0007a55b00 writeit 10898 fffffe0007b48880 fffffe0007bba000 31154 770 10898 004006 3 getblk fffffe0004470460 writeit 10897 fffffe0007079ee0 fffffe0007b3e000 31154 770 10897 004006 3 nfsrcvlk fffffe0007a55b00 writeit 10896 fffffe0007b44600 fffffe0007f6a000 31154 770 10896 004006 3 nfsrcvlk fffffe0007a55b00 writeit 10895 fffffe0007b46e60 fffffe0007f0e000 31154 770 10895 004006 2 writeit 10894 fffffe0007b4ac20 fffffe0007b6a000 31154 770 10894 004006 3 getblk fffffe0004456cf0 writeit 10892 fffffe0007b48d40 fffffe0007bb2000 31154 770 10892 004006 3 getblk fffffe0004470460 writeit 10891 fffffe000707cc00 fffffe0007ae0000 31154 770 10891 004006 3 getblk fffffe0004470460 writeit 10890 fffffe0007b45440 fffffe0007fa4000 31154 770 10890 004006 3 getblk fffffe00044a2108 writeit 10889 fffffe000707b440 fffffe0007b0c000 31154 770 10889 004006 3 getblk fffffe0004470460 writeit 10888 fffffe0007b47a40 fffffe0007ef2000 31154 770 10888 004006 3 getblk fffffe0004467e38 writeit 10887 fffffe0007b48620 fffffe0007bc0000 31154 770 10887 004006 3 getblk fffffe000445f9b8 writeit 10886 fffffe0007b46c00 fffffe0007f12000 31154 770 10886 004006 2 writeit 10885 fffffe0007b477e0 fffffe0007ef6000 31154 770 10885 004006 2 writeit 10884 fffffe0007b4b340 fffffe0007b5e000 31154 770 10884 004006 2 writeit 10883 fffffe0007b44ac0 fffffe0007f66000 31154 770 10883 004006 2 writeit 10882 fffffe0007b4a2a0 fffffe0007b80000 31154 770 10882 004006 3 getblk fffffe0004470460 writeit 10880 fffffe000707ce60 fffffe0007adc000 31154 770 10880 004006 3 nfsrcvlk fffffe0007a55b00 writeit 10879 fffffe0007b451e0 fffffe0007fa8000 31154 770 10879 004006 3 getblk fffffe0004470460 writeit 10878 fffffe000707a140 fffffe0007b3a000 31154 770 10878 004006 3 getblk fffffe0004470460 writeit 10877 fffffe000707e160 fffffe0007ab4000 31154 770 10877 004006 2 writeit 10875 fffffe0007b46280 fffffe0007f24000 31154 770 10875 004006 2 writeit 10874 fffffe0007b49200 fffffe0007ba8000 31154 770 10874 004006 3 getblk fffffe0004470460 writeit 10872 fffffe0007b47ca0 fffffe0007eee000 31154 770 10872 004006 2 writeit 10870 fffffe0007b464e0 fffffe0007f28000 31154 770 10870 004006 2 writeit 10868 fffffe0007b483c0 fffffe0007ee2000 31154 770 10868 004006 2 writeit 10867 fffffe000707bdc0 fffffe0007afa000 31154 770 10867 004006 2 writeit 10866 fffffe0007b49b80 fffffe0007b90000 31154 770 10866 004006 3 getblk fffffe0004444e68 writeit 10865 fffffe0007b4b5a0 fffffe0007b5a000 31154 770 10865 004006 2 writeit 10864 fffffe000707a3a0 fffffe0007b36000 31154 770 10864 004006 3 getblk fffffe0004470460 writeit 10863 fffffe0007b4a500 fffffe0007b78000 31154 770 10863 004006 2 writeit 10862 fffffe0007b470c0 fffffe0007f0a000 31154 770 10862 004006 3 getblk fffffe0004470460 writeit 10861 fffffe0007b46740 fffffe0007f1a000 31154 770 10861 004006 2 writeit 10859 fffffe0007b4ba60 fffffe0007b52000 31154 770 10859 004006 3 getblk fffffe0004470460 writeit 90946 fffffe000707a600 fffffe0007b32000 0 90943 4274 004084 3 wait fffffe000707a600 sh 90943 fffffe000707dca0 fffffe0007abe000 0 90942 4274 004084 3 wait fffffe000707dca0 make 90942 fffffe000707aac0 fffffe0007b1e000 0 4285 4274 004084 3 wait fffffe000707aac0 sh 4285 fffffe0007b4bcc0 fffffe0007b4c000 0 4284 4274 004084 3 wait fffffe0007b4bcc0 make 4284 fffffe000707c4e0 fffffe0007aee000 0 4283 4274 004084 3 wait fffffe000707c4e0 sh 4283 fffffe000707d580 fffffe0007acc000 0 4282 4274 004084 3 wait fffffe000707d580 make 4282 fffffe000707c280 fffffe0007af2000 0 4279 4274 004084 3 wait fffffe000707c280 sh 4279 fffffe000707bb60 fffffe0007afe000 0 4278 4274 004084 3 wait fffffe000707bb60 make 4278 fffffe000707d320 fffffe0007ad0000 0 4275 4274 004084 3 wait fffffe000707d320 sh 4275 fffffe000707a860 fffffe0007b2c000 31154 4274 4274 004084 3 wait fffffe000707a860 sh 4274 fffffe000707efa0 fffffe0007a9a000 31154 4272 4274 004084 3 wait fffffe000707efa0 sh 4272 fffffe000707ad20 fffffe0007b18000 0 147 147 000084 3 piperd fffffe0007a4fa80 cron 770 fffffe000707f460 fffffe0007a8e000 31154 193 770 004086 3 pause fffffe0007a8e1a8 csh 261 fffffe000707e3c0 fffffe0007aae000 31154 230 261 004186 3 nanslp fffffc000056b890 iostat 230 fffffe000707eae0 fffffe0007aa2000 31154 229 230 004086 3 wait fffffe000707eae0 bash 229 fffffe000707ed40 fffffe0007a9e000 0 144 229 004184 3 select fffffc000058fa20 rlogind 193 fffffe000707f200 fffffe0007a96000 31154 192 193 004086 3 wait fffffe000707f200 bash 192 fffffe00070802a0 fffffe0007a72000 0 144 192 004184 3 select fffffc000058fa20 rlogind 188 fffffe0007081340 fffffe0007a38000 0 1 188 004086 3 ttyin fffffc0000589810 getty 147 fffffe000707f6c0 fffffe0007a88000 0 1 147 000084 3 nanslp fffffc000056b890 cron 144 fffffe000707f920 fffffe0007a82000 0 1 144 000084 3 select fffffc000058fa20 inetd 126 fffffe000707fb80 fffffe0007a7e000 0 1 118 000084 3 nfsidl fffffc0000592a98 nfsiod 125 fffffe000707fde0 fffffe0007a7a000 0 1 118 000084 3 nfsidl fffffc0000592a90 nfsiod 124 fffffe0007080040 fffffe0007a76000 0 1 118 000084 3 nfsidl fffffc0000592a88 nfsiod 123 fffffe00070810e0 fffffe0007a3c000 0 1 118 000084 3 nfsidl fffffc0000592a80 nfsiod 107 fffffe0007080500 fffffe0007a6e000 0 1 107 000084 3 select fffffc000058fa20 ypbind 103 fffffe0007080760 fffffe0007a6a000 1 1 103 000184 3 select fffffc000058fa20 portmap 99 fffffe00070809c0 fffffe0007a5a000 0 1 99 000084 3 select fffffc000058fa20 xntpd 91 fffffe0007080e80 fffffe0007a40000 0 1 91 000084 3 select fffffc000058fa20 syslogd 20 fffffe0007080c20 fffffe0007a44000 0 1 20 000284 3 mfsidl fffffe0007073500 mount_mfs 4 fffffe00070815a0 fffffe0007094000 0 0 0 000204 3 syncer fffffc000058f970 syncer 3 fffffe0007081800 fffffe0007090000 0 0 0 000204 3 psleep fffffc0000588034 vmdaemon 2 fffffe0007081a60 fffffe000708c000 0 0 0 000204 3 psleep fffffc00005527f8 pagedaemon 1 fffffe0007081cc0 fffffe0007088000 0 0 1 004084 3 wait fffffe0007081cc0 init 0 fffffc000058e1b0 fffffc000061c000 0 0 0 000204 3 sched fffffc000058e1b0 swapper db> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.04.9902211828530.4408-100000>