maybe this is a hardware error. maybe it's an obscure bug. it's not immediately clear to me. we have not had any other panics in the last year. the only console message is:
Thu Feb 26 15:02:18: panic: newpage Thu Feb 26 15:02:18: panic: newpage ktrace /kernel/path f0108f3d f3c71670 <<EOF estackxcpu1: exiting cpu0: exiting f3c71a00 f3c71610=f0108cd2 f3c71618=f019b206 f3c71644=f014ac5e f3c71658=f0108f3d f3c7166c=f0108f3d f3c71670=f0108cd6 f3c71678=f014af9c f3c716b0=f0108781 f3c716c8=f019b7f0 f3c716e4=f0146fa9 f3c716f0=f01a8646 f3c716fc=f01a38d5 f3c71708=f01a3eb7 f3c7170c=f01a8878 f3c71714=f01a8b5c f3c71720=f01a3791 f3c71734=f01a8c63 f3c71744=f01a377b f3c71748=f01a3791 f3c71758=f01a9b1c f3c71764=f01a377b f3c7176c=f01a3791 f3c71770=f01a38d5 f3c7177c=f01a377b f3c71788=f01a3c24 f3c71794=f01942f7 f3c717a4=f01944cf f3c717b0=f01a38d5 f3c717bc=f01a3d8b f3c717c4=f01a3d8b f3c717dc=f019351b f3c717f0=f018bb05 f3c71820=f01932e5 f3c71838=f011b53d f3c71844=f0109121 f3c71854=f01a377b f3c71858=f01a3791 f3c71860=f01a38d5 f3c71868=f01a3d8b f3c7186c=f018c2ed f3c71874=f01a3d8b f3c71880=f01a8b5c f3c71894=f011bd54 f3c718a0=f01a8646 f3c718ac=f01a9701 f3c718bc=f01a8878 f3c718d8=f010854d f3c718dc=f01017b9 f3c718e4=f01a38d5 f3c718f4=f01086fe f3c71900=f018e78c f3c7190c=f01aa6cd f3c71910=f019b696 f3c71924=f018be5b f3c71934=f019ce1d f3c7195c=f010854d f3c71968=f01a31e0 f3c71978=f0109547 f3c719ac=f010065d f3c719d4=f010001b f3c719e4=0000000e f3c719e8=00000006 f3c719ec=00015e27 f3c719f0=00000023 f3c719f4=00010202 f3c719f8=dfffd87c f3c719fc=0000001b EOF src(0xf0108f3d); // dumpstack+0x10 src(0xf014af9c); // panic+0xfc src(0xf01944cf); // newpage+0x91 src(0xf019351b); // fixfault+0x121 src(0xf01932e5); // fault+0xde src(0xf0109121); // fault386+0x143 src(0xf01086fe); // trap+0x15d src(0xf010065d); // forkret //passing interrupt frame; last pc found at sp=0xf3c719ac acid: src(0xf0109121); // fault386+0x143 /sys/src/9/pc/trap.c:639 634 panic("user fault: up=0 pc=0x%.8lux addr=0x%.8lux", ureg->pc, addr); 635 636 insyscall = up->insyscall; 637 up->insyscall = 1; 638 n = fault(addr, read); >639 if(n < 0){ 640 if(!user){ 641 dumpregs(ureg); 642 panic("fault: 0x%lux\n", addr); 643 } 644 checkpages(); acid: src(0xf019351b); // fixfault+0x121 /sys/src/9/port/fault.c:106 101 102 case SG_BSS: 103 case SG_SHARED: /* Zero fill on demand */ 104 case SG_STACK: 105 if(*pg == 0) { >106 new = newpage(1, &s, addr); 107 if(s == 0) 108 return -1; 109 110 *pg = new; 111 } acid: src(0xf01944cf); // newpage+0x91 /sys/src/9/port/page.c:195 190 191 lock(p); 192 if(p->ref != 0) 193 panic("newpage"); 194 >195 uncachepage(p); 196 p->ref++; 197 p->va = va; 198 p->modref = 0; 199 for(i = 0; i < MAXMACH; i++) 200 p->cachectl[i] = ct; - erik