CURRENT branch
Julien ÉLIE
julien at trigofacile.com
Mon May 18 20:46:37 UTC 2009
Hi Russ,
> All these fixes don't help the case of out-of-order delivery and nnrpd,
> unfortunately, since nnrpd isn't doing the writing and hence won't get
> the out-of-order flag set and won't know to remap.
Oh, I had overlooked that part! Thanks for the explanation.
> I think the current tradeoff (where the article doesn't appear) is
> probably better than breaking OVSTATICSEARCH
Absolutely.
> but it does mean that if we do out-of-order article
> delivery while nnrpd has a search open, the client will end up never
> seeing that article.
What if:
if (entry->offset + entry->length > search->data->datalen) {
warn("Invalid or inaccessible entry for article %lu in %s.IDX:"
" offset %lu length %lu datalength %lu",
search->current + search->data->base, search->data->path,
(unsigned long) entry->offset, (unsigned long) entry->length,
(unsigned long) search->data->datalen);
+ data->remapoutoforder = true;
return false;
}
in tdx_search()? (We just have to add "data" to its arguments.)
This way, next time tdx_search_open() is called by nnrpd, it will
remap the data file. Whence the client will see the article next time
it starts a search.
--
Julien ÉLIE
« Nul n'entre ici s'il n'est géomètre. » (Platon)
More information about the inn-workers
mailing list