Nearly always when we encounter this error it's due to memory being overwritten by other code or due to a blown thread stack. Nearly always we can find the error by doing one of the following:
1) Start with "-z" option to turn on the zippy memory allocator which has a simple out-of-bounds checker. A good litmus test is to run without "-z" and then with "-z" and see which one fails more quickly (should be the "-z" one that fails quickly). 2) Increase the stack size parameters in the ns/parameters section. On nearly all platforms the default thread stack size is artificially set to 64K even though the thread libraries on platforms like Solaris default to 1024K (that's 1 meg per thread). ns_param stacksize [expr 1024*512] 3) Run Purify which, if you can get it running properly, will identify nearly everything that can go wrong. Requires money. Kris > about ten times a day I get an error like > nsthread(2496) error: Ns_Pool: invalid block: 0x8178198 > > and my server restarts. It may be significant that the invalid block > is always in the same memory region -- 0x8178198, 0x8178100, 0x8177b98. > Seems like a possible hardware error -- anyone know a good way to > check? I've already tried removing half the RAM at a time; it got the > errors in all 3 configurations. So maybe it's a software problem after > all. Any ideas how to find out for sure? -- Kriston Rehberg America Online, Inc. http://kriston.net/
