According to Peter L. Peres: > On Thu, 27 Sep 2001, Gilles Detillieux wrote: > >Do you get anything useful from a "bt" command in gdb? It might help > >to know where the free() or delete statement is that's causing this > >chunk_free to fail. > > #0 0x400c84ff in chunk_free (ar_ptr=0x40122300, p=0x81d6850) at > malloc.c:2948 > malloc.c:2948: No such file or directory. > (gdb) bt > #0 0x400c84ff in chunk_free (ar_ptr=0x40122300, p=0x81d6850) at > malloc.c:2948 > #1 0x400c83c1 in __libc_free (mem=0x81d6858) at malloc.c:2872 > #2 0x4005b062 in __builtin_delete (ptr=0x81d6858) > #3 0x8061901 in Queue::pop (this=0x810675c) at Queue.cc:91 > #4 0x8054c8f in Server::pop (this=0x8106738) at Server.cc:273 > #5 0x80505be in Retriever::Start (this=0xbffff510) at Retriever.cc:315 > #6 0x8055acf in main (ac=5, av=0xbffff6c4) at htdig.cc:328 > > As you can see, not very usefull. Queue::pop works on lists, just like the > previous time. I suspect that this is a libc++ bug in new().
Problems like this are the hardest ones to track down! The trouble is heap corruption can happen just about anywhere. All it takes is a stray pointer or a buffer overrun somewhere (anywhere) in the code and blammo, the allocation heap is messed up. This may result in a failure in the allocation or freeing of memory, but the bug may be elsewhere. > My suspicion of running out of VM is based on this. If there is a bug in > new() somewhere and it does stupid things if running out of VM then that > would explain why both coredumps occured at the same size, both on pointer > deallocation or indirection. I will borrow more RAM and see if that helps. > This is reelatively easy to do now. It will take another three days to get > it over. Well, if there's a bug in new(), or malloc() - which I think is what new() may end up calling - it may not be just when running out of VM that it does something stupid. It would be something that happens infrequently, though, or it would have turned up in pre-release testing. It would be interesting to see if adding RAM helps. It may just make htdig run longer before crashing. Keep us posted when you try this. > >Hmmm. I don't think running out of VM would cause htdig to crash in > >chunk_free like this. More likely, the malloc heap is getting messed > >up somehow - possibly from a buffer overrun problem - but I don't know > >where to start looking for this. > > > >I see you're running Linux, but what distribution is it? Did you install > >all update packages available for the version you're running of this > >distribution? I know that Red Hat 7.0 had C library problems that were > >corrected in an update RPM. > > I run an ancient SuSe with kernel 2.2.5 at home but this has been > stress-tested over 1 1/2 years. I only upgrade when I have to (now ?) and > enjoy long uptimes and stable performance under load. Even htdig ran > nicely until I increased the document tree size by adding material... Well, 2.2.5 is a pretty early 2.2 kernel release. I think they're up to 2.2.19 or maybe higher by now. If you're suspecting a problem in memory allocation, rather than a pointer bug right in htdig, then you'd be wise to look for a kernel update for your SuSe system, as well as any C/C++ library updates that are available for it. Ancient and stable are neither synonyms nor antonyms. How old your SuSe release is isn't as important as whether they have fixed serious bugs in it since its release. Check with SuSe if they have an errata or something similar that describes updates made available for your release. -- Gilles R. Detillieux E-mail: <[EMAIL PROTECTED]> Spinal Cord Research Centre WWW: http://www.scrc.umanitoba.ca/~grdetil Dept. Physiology, U. of Manitoba Phone: (204)789-3766 Winnipeg, MB R3E 3J7 (Canada) Fax: (204)789-3930 _______________________________________________ htdig-general mailing list <[EMAIL PROTECTED]> To unsubscribe, send a message to <[EMAIL PROTECTED]> with a subject of unsubscribe FAQ: http://htdig.sourceforge.net/FAQ.html

