[OpenAFS] System still panicing.. no help found yet..
Mitchell Baker
Mitchell.D.Baker@rose-hulman.edu
Thu, 14 Mar 2002 14:13:56 -0500
Have not had a chance to install patch yet.. but here is the msgbuf from the
most recent (like 10 min ago) panic.. System was up since yesterday evening,
then 2 panics in about a 20 min period....
0005fbf2bf: SUNW,hme0 : Internal Transceiver Selected.
30005fbefbf: SUNW,hme0 : 100 Mbps Full-Duplex Link Up
300053529a2: pseudo-device: vol0
300053526a3: vol0 is /pseudo/vol@0
30005352c9f: Starting AFS cache scan...
30005352f9f: found 52959 non-empty cache files (35%).
300051b5d23: kernel memory allocator:
300051a4b63: buffer freed to wrong cache
300051a5a63: buffer was allocated from kmem_alloc_16,
300051a5d63: caller attempting free to kmem_alloc_8.
300051a4263: buffer=3000ea04240 bufctl=3000ea17380 cache: kmem_alloc_8
300051a4e63: previous transaction on buffer 3000ea04240:
300053857a3: thread=30009a449e0 time=T-785.652870942 slab=3000e9b3440
cach
e: kmem_alloc_16
30005385da3: kmem_alloc+2c
30005384ba3: afs_osi_Alloc+90
3000519cd03: afs_UFSHandleLink+c4
3000519c703: afs_readlink+190
3000519c103: gafs_readlink+2c
3000519d003: pn_getsymlink+40
3000519d603: lookuppnvp+37c
3000519df03: lookuppn+128
300053535a3: lookupname+a4
30005353ba3: stat32+14
300053523a0:
panic[cpu0]/thread=30009ff4ca0:
300051b1440: kernel heap corruption detected
300051b18c0:
300051b0fc3: 000002a1009e4ea0 genunix:kmem_error+448 (1042ec00, 30000029000,
3000ea04250, 6, 30000029000, 3000ea04240)
300051b03c3: %l0-3: 000003000ea04240 000003000ea17380 0000030000029400
0000
03000e9b3440
%l4-7: 000003000e7fcac0 0000000000000000 0000000000000000 0000000000000000
30004ee3923: 000002a1009e4f50 afs:afs_osi_Free+8c (3000ea04240, 1, 0,
7efefef
f, 81010100, ff0000)
30004ee3023: %l0-3: 00000000006ac5cf 00000000780f1618 00000000000012b0
0000
0000006ac5d0
%l4-7: 00000000780faa0c 000003000ea04240 0000000000000000 0000000000000000
30004ee3da3: 000002a1009e5010 afs:afs_FlushVCache+2ec (30007aaf9c8,
2a1009e51
c8, 800, 0, 30007afdc60, 30007aaf9c8)
30004ee22a3: %l0-3: 0000000000000000 000003000ea04240 000000002000a150
0000
030007aafa50
%l4-7: 0000030007aaf9c8 0000030007aafa40 0000030007aafb50 0000000000000049
300050a5903: 000002a1009e5110 afs:afs_NewVCache+2b8 (2a1009e5470, 0, 3,
30007
aafa38, 30007aabf38, 30007aaf9c8)
300050a5003: %l0-3: 0000000000000000 0000000000000401 0000000000000007
0000
030007aaf9c8
%l4-7: 0000030007aabf38 0000030007aafa38 000000000000004b 0000000000000008
300050a4703: 000002a1009e5210 afs:afs_GetVCache+218 (2a1009e5470,
2a1009e5500
, 2a1009e544c, 0, 2, 0)
30004ee1d63: %l0-3: 0000000000000015 00000000780feabc 00000000000031b6
0000
00000001700e
%l4-7: 00000000780fa068 0000000000007fd0 00000000780fe110 0000030007fe3ad8
30004ee1463: 000002a1009e5370 afs:afs_lookup+cf8 (30007b92648,
2a1009e5750, 2
a1009e5748, 30007fe3ad8, 0, 0)
30004ee0b63: %l0-3: 000000000000c24e 00000300079799b0 0000000000000000
0000
030007b92648
%l4-7: 0000030007fe3b2c 0000030007fe3ad8 0000000000000000 000002a1009e5750
30004ee0263: 000002a1009e5550 afs:gafs_lookup+40 (30007b92648,
2a1009e5750, 2
a1009e5748, 2a1009e5a10, 0, 300051d7da8)
30004f118c3: %l0-3: 00000000780fad30 00000000780fad30 0000000000000000
0000
000000000000
%l4-7: 0000000000000000 0000000000000000 0000030009fea6a0 0000000000000000
30004f10fc3: 000002a1009e5650 genunix:lookuppnvp+2cc (2a1009e5a10, 0,
1045ea7
8, 1045a908, 0, 3)
30004f106c3: %l0-3: 00000000780d50e0 000002a1009e5a10 0000000000000000
0000
0300051d7da8
%l4-7: 0000030009fea6a0 000002a1009e5ae8 0000030007b92648 0000000000000000
30004f11bc3: 000002a1009e5850 genunix:lookuppn+128 (300051d7da8, 0, 0,
300051
d7da8, 2a1009e5ae8, 2a1009e5a10)
30004f112c3: %l0-3: 0000000000000001 0000000000000000 0000000000000001
0000
000000000000
%l4-7: 000003000e7fcac0 0000000000000000 0000000000000000 0000000000000000
30004f10e43: 000002a1009e5910 genunix:lookupname+e8 (0, 0, 1, 0,
2a1009e5ae8,
fb290)
30004f109c3: %l0-3: 0000000000000001 0000000000000000 00000000ff000000
0000
000000ff0000
%l4-7: 000000000000ff00 0000000081010100 0000000000000000 0000000000000000
30004f10543: 000002a1009e5a30 genunix:stat32+14 (fb290, fa810, 66000000,
7efe
feff, 81010100, ff00)
30004f100c3: %l0-3: 00000000000face0 0000000000000000 0000000000000000
0000
000000000004
%l4-7: 0000000000000000 0000000000000000 0000000000000000 00000000fefe189c
30005fbeb40:
30005fbe243: syncing file systems...
30005fbe0c3: 2
30005fbe9c3: 1
30005fbf8c3: done
30005fbe543: dumping to /dev/dsk/c0t0d0s1, offset 429588480
Stack trace....
$c
panicsys(10423630,2a1009e4f28,10139e18,78002000,2000,0) + 44
vpanic(10139e18,2a1009e4f28,14,2a1009e4e88,100cf634,30004fc58e6) + cc
panic(10139e18,3000ea04240,10437dc0,3000ea17380,a,3000ea04240) + 1c
kmem_error(1042ec00,30000029000,3000ea04250,6,30000029000,3000ea04240) + 448
afs_osi_Free(3000ea04240,1,0,7efefeff,81010100,ff0000) + 8c
afs_FlushVCache(30007aaf9c8,2a1009e51c8,800,0,30007afdc60,30007aaf9c8) + 2ec
afs_NewVCache(2a1009e5470,0,3,30007aafa38,30007aabf38,30007aaf9c8) + 2b8
afs_GetVCache(2a1009e5470,2a1009e5500,2a1009e544c,0,2,0) + 218
afs_lookup(30007b92648,2a1009e5750,2a1009e5748,30007fe3ad8,0,0) + cf8
gafs_lookup(30007b92648,2a1009e5750,2a1009e5748,2a1009e5a10,0,300051d7da8) + 40
lookuppnvp(2a1009e5a10,0,1045ea78,1045a908,0,3) + 2cc
lookuppn(300051d7da8,0,0,300051d7da8,2a1009e5ae8,2a1009e5a10) + 128
lookupname(0,0,1,0,2a1009e5ae8,fb290) + e8
stat32(fb290,fa810,66000000,7efefeff,81010100,ff00) + 14
At 01:38 PM 3/14/2002 -0500, Nickolai Zeldovich wrote:
> > Here is the stack trace...
>
>Thanks.. Could you try this patch and see if it helps?
>(Note that I've not actually tested it, so you may want
>to first check it on a different machine.) This should
>be against openafs-1.2.3.
>
>-- kolya
>
>--- src/afs/VNOPS/afs_vnop_symlink.c 2002/01/20 08:20:57 1.4.4.1
>+++ src/afs/VNOPS/afs_vnop_symlink.c 2002/03/14 18:36:36
>@@ -224,7 +224,7 @@
> struct vrequest *areq;
> {
> register struct dcache *tdc;
>- register char *tp;
>+ register char *tp, *rbuf;
> afs_int32 offset, len, alen;
> register afs_int32 code;
>
>@@ -245,10 +245,14 @@
> }
> if (avc->m.Mode & 0111) alen = len+1; /* regular link */
> else alen = len; /* mt point */
>- tp = afs_osi_Alloc(alen); /* make room for terminating null */
>+ rbuf = (char *) osi_AllocLargeSpace(AFS_LRALLOCSIZ);
> addr = afs_MemCacheOpen(tdc->f.inode);
>- code = afs_MemReadBlk(addr, 0, tp, len);
>- tp[alen-1] = 0;
>+ code = afs_MemReadBlk(addr, 0, rbuf, len);
>+ rbuf[alen-1] = '\0';
>+ alen = strlen(rbuf) + 1;
>+ tp = afs_osi_Alloc(alen); /* make room for terminating null */
>+ memcpy(tp, rbuf, alen);
>+ osi_FreeLargeSpace(rbuf);
> afs_PutDCache(tdc);
> if (code != len) {
> afs_osi_Free(tp, alen);
>@@ -263,7 +267,7 @@
> register struct vcache *avc;
> struct vrequest *areq; {
> register struct dcache *tdc;
>- register char *tp;
>+ register char *tp, *rbuf;
> char *tfile;
> afs_int32 offset, len, alen;
> register afs_int32 code;
>@@ -285,11 +289,15 @@
> tfile = osi_UFSOpen (tdc->f.inode);
> if (avc->m.Mode & 0111) alen = len+1; /* regular link */
> else alen = len; /* mt point */
>- tp = afs_osi_Alloc(alen); /* make room for
>terminating null */
>- code = afs_osi_Read(tfile, -1, tp, len);
>- tp[alen-1] = 0;
>+ rbuf = (char *) osi_AllocLargeSpace(AFS_LRALLOCSIZ);
>+ code = afs_osi_Read(tfile, -1, rbuf, len);
>+ rbuf[alen-1] = '\0';
> osi_UFSClose(tfile);
> afs_PutDCache(tdc);
>+ alen = strlen(rbuf) + 1;
>+ tp = afs_osi_Alloc(alen); /* make room for terminating null */
>+ memcpy(tp, rbuf, alen);
>+ osi_FreeLargeSpace(rbuf);
> if (code != len) {
> afs_osi_Free(tp, alen);
> return EIO;
/####################################################################/
/# Mitchell "Buzz" Baker "To Infinity And Beyond..." #/
/# Sr. Systems/Security Admin Rose-Hulman Institute of Technology #/
/# Mitchell.D.Baker@rose-hulman.edu www.rose-hulman.edu #/
/# For PGP Public key, check out www.keyserver.net #/
/####################################################################/