Re: Infinite loop in searchd

Kir Kolyshkin <[email protected]> Tue, 26 Aug 2003 16:22:18 +0359
Newsgroups gmane.comp.web.aspseek.devel
Message-ID <[email protected]>
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.