Subject: kernel diagnostic assertion "map->hint == prev_entry" failed
To: None <tech-kern@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-kern
Date: 04/04/2007 23:28:24
Here is another crash, same hardware, this time during boot:

Building databases...
panic: kernel diagnostic assertion "map->hint == prev_entry" failed: file "/u3/dyoung/pristine-nbsd/src/sys/uvm/uvm_map.c", line 1118
Stopped in pid 1359.1 (sh) at   netbsd:cpu_Debugger+0x4:        jr      ra
                bdslot: nop
db> bt
801b5c28+88c (81ff0000,d,0,0) ra 8015b280 sz 0
panic+184 (81ff0000,8024a458,80259e08,802590e0) ra 8022fb4c sz 48
__assert+2c (81ff0000,8024a458,45e,802590e0) ra 801051cc sz 32
80104e44+388 (81ff0000,8024a458,45e,802590e0) ra 0 sz 0
User-level: pid 1359.1
db> ps
 PID           PPID     PGRP        UID S   FLAGS LWPS          COMMAND    WAIT
 1020           881       13          0 2       0    1               sh
 881             13       13          0 2       0    1               sh    wait
>1359          1175       13          0 2       0    1               sh
 878              1      878          0 2       0    1            hslsd nanoslp
 1175             1       13          0 2       0    1               sh    wait
 1245             1     1245          0 2   0x101    1            zebra  select
 505              1       13          0 2  0x4000    1            route   netio
 13               1       13          0 2  0x4000    1               sh    wait
 12               0        0          0 2 0x20002    1         aiodoned aiodone
 11               0        0          0 2 0x20002    1          ioflush  syncer
 10               0        0          0 2 0x20002    1       pagedaemon pgdaemo
 9                0        0          0 2 0x20002    1            nfsio  nfsidl
 8                0        0          0 2 0x20002    1            nfsio  nfsidl
 7                0        0          0 2 0x20002    1            nfsio  nfsidl
 6                0        0          0 2 0x20002    1            nfsio  nfsidl
 5                0        0          0 2 0x20002    1          atabus0   atath
 4                0        0          0 2 0x20002    1       usbtask-dr  usbtsk
 3                0        0          0 2 0x20002    1       usbtask-hc  usbtsk
 2                0        0          0 2 0x20002    1             usb0  usbevt
 1                0        1          0 2  0x4000    1             init    wait
 0               -1        0          0 2 0x20002    1          swapper schedul
db> 

GDB has this to say about the bottommost entry on the stack trace:

(gdb) l *(0x80104e44+0x388)
0x801051cc is in uvm_map_enter (/u3/dyoung/pristine-nbsd/src/sys/uvm/uvm_map.c:1410).
1405                    } else {
1406                            uvm_mapent_free(new_entry);
1407                    }
1408            }
1409            if (dead) {
1410                    KDASSERT(merged);
1411                    uvm_mapent_free_merged(map, dead);
1412            }
1413            return error;
1414    }
(gdb) 
  
Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933