aseek-devel  

[aseek-devel] Re: Infinite loop in searchd

Kir Kolyshkin
Tue, 26 Aug 2003 12:25:01 +0000

You should look at ebuf[0], ebuf[1] and pbuf

Probably your index is broken someway.
BTW on what arch do you run ASPseek?

Jens Thoms Toerring wrote:
Hi,

   after finally having got index to run I now have a problem with
searchd which I am not able to solve myself. When I do a search
on more than a single word, searchd gets into an infinite loop.
By attaching with a debugger I found that this happens in the function

ULONG AndResults( int size, ULONG* sizes, BYTE** buffers, BYTE** ebuffers,
                                                          ULONG** urls, BYTE*& p_buf, 
WORD* dist )

in search.cpp. The conditions to get out of the loop in this function
is never satisfied. Unfortunately, there is too much strange stuff
going one there, i.e.

    do
    {

....

for ( i = 0, purl = urls; i < size; purl++, i++ )
{
// Advance pointer until value of UR ID will be greater
// or equal to maximal
while ( **purl < maxurl )
{
( WORD * & ) *purl += ( ( WORD * ) ( *purl ) )[ 3 ] + 4;
if ( ( BYTE * ) *purl >= ebuf[ i ] )
goto end; // Buffer end detected
}
}
}


} while ( true );

end:

so that I have no idea what I have to change to get it to work. Can
you help me here?
                                           Regards, Jens


--
== kir_at_asplinux.ru = 7551596_at_ICQ = 6722750_at_sms.beemail.ru ==
I am signature virus. Copy me to your ~/.signature to help me spread.