XOVER ranges

Bill Davidsen davidsen at tmr.com
Wed Apr 9 16:55:13 UTC 2008

Jeffrey M. Vinocur wrote:
> Hi all --
> I'm trying to track down some weird bug with garbled XOVER output.  After 
> staring at tdx-data.c for a really long time, I thought it might be due to 
> handling of the case where the high watermark is stale (noted when the 
> requested article range exceeds it) and the overview file is re-mmap()ed 
> to get at the rest of it.
> But in the process of trying to debug it, I found that CMDgetrange() does:
>     if (rp->High > ARThigh)
>         rp->High = ARThigh;
>     if (rp->Low < ARTlow)
>         rp->Low = ARTlow;
> which is to say, it revises the user's requested article range not to 
> exceed its internal (and possibly stale) idea of the high watermark.
> So I'm writing to ask, what do we think of this behavior?
> It means if the client enters the group, then new articles arrive, then 
> the client does XOVER 1-, it does not receive info on the new articles.  
> More disturbingly, if the client does XOVER 1-100, and the old high 
> watermark was 80, the response reads "224 1-100 fields follow" but then 
> only data on articles up to 80 is supplied.  I'm not sure that any sane 
> client would ever actually encounter the latter, since it will also have a 
> stale idea of the high watermark until it reenters the group.
> I see three options:
>   (1) Ignore it
>   (2) Change CMDgetrange() to not adjust the watermarks
>   (3) Change the XOVER response line to echo back the adjusted watermarks
>       rather than the originals
> Thoughts?
I think (3) is the right thing to do, because it avoids two client 
problems, one being the client expecting unavailable data, often a lot 
of it, at the low end, and one being promising data we can't deliver at 
the high end. Let's trim the range as we do, and tell the client what we 
are really doing.
> P.S.  Russ, any thoughts about my original supposition?  
>       I'm still worried there might be a bug lurking in the
>       unmap_file/map_file that can take place in the middle of the search,
>       since SendIOv may still have references to data in the old location.

Bill Davidsen <davidsen at tmr.com>
  "Woe unto the statesman who makes war without a reason that will still
  be valid when the war is over..." Otto von Bismark 

More information about the inn-workers mailing list