|
From: Jim C. <gre...@yg...> - 2002-10-13 01:44:56
|
Geoff Hutchison's bits of Fri, 11 Oct 2002 translated to: >I posted another mifluz merge snapshot. Conveniently, it was posted I was able to build all programs under OS X (10.2). There were a number of warnings, but no errors. I logged the build and can provide the warning messages if needed. It was necessary to use the --disabled-shared option with configure. I am using the current 10.2 Developer Tools with GCC 3 selected. I tested on a small site and htdig runs to completion; however htpurge crashes on a bus error. Run under gdb, htpurge terminates as follows. WordDict::Unref() Unref on non existing word occurrence htpurge: deletion of Program received signal EXC_BAD_ACCESS, Could not access memory. 0x00074fc4 in String::get() const (this=0x97f4ac) at String.cc:244 244 Data[Length] = '\0'; // We always leave room for this. The values of Length and Data are as follows. #0 0x00074fc4 in String::get() const (this=0x97f4ac) at String.cc:244 244 Data[Length] = '\0'; // We always leave room for this. (gdb) print Length $1 = 2 (gdb) print Data $2 = 0x0 The backtrace. (gdb) bt #0 0x00074fc4 in String::get() const (this=0x97f4ac) at String.cc:244 #1 0x00075444 in String::operator<<(String const&) (this=0xbffff5c0, s=@0x97f4ac) at htString.h:259 #2 0x000088b0 in HtWordReference::Key() const (this=0x97f4a8) at ../htlib/htString.h:247 #3 0x00003850 in delete_word(WordList*, WordDBCursor&, WordReference const*, Object&) (words=0xf05bc, cursor=@0x97f4ac, word_arg=0x97f4a8, data=@0xbffff5c0) at ../htlib/htString.h:48 #4 0x00014360 in WordCursorOne::WalkNextStep() (this=0x97f470) at WordCursorOne.cc:358 #5 0x00013d34 in WordCursorOne::WalkNext() (this=0x97f470) at WordCursorOne.cc:269 #6 0x000136ac in WordCursorOne::Walk() (this=0x97f470) at WordCursorOne.cc:158 #7 0x00003a68 in purgeWords(Dictionary*) (discard_list=0xf14d0) at htpurge.cc:350 #8 0x00002eec in main (ac=2, av=0xbffffa04) at htpurge.cc:151 #9 0x0000279c in _start (argc=2, argv=0xbffffa04, envp=0xbffffa10) at /SourceCache/Csu/Csu-45/crt.c:267 #10 0x0000261c in start () at /usr/include/gcc/darwin/3.1/g++-v3/streambuf:129 The problem is repeatable. I would be happy to perform further debugging if needed. Is it necessary that htpurge be run before searching? The documentation seems to imply that it is not necessary. If this is the case, then htsearch is also having problems on this platform. Both "All" and "Any" searches result in no matches on things that should definitely be in the database. Boolean queries appear to result in a crash. The web server logs reports the following. *** malloc_zone_malloc[28390]: argument too large: -913191692 [Sat Oct 12 19:25:47 2002] [error] [client 10.0.1.217] Premature end of script headers: /Users/greyleaf/Sites/cgi-bin/htsearchm1010.cgi I did skip htpurge altogether for this test, so the problem is not due to an htpurge crash corrupting anything. Jim |