XOVER ranges
Jeffrey M. Vinocur
jeff at litech.org
Fri Apr 4 03:11:06 UTC 2008
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?
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.
--
Jeffrey M. Vinocur
jeff at litech.org
More information about the inn-workers
mailing list