CURRENT branch

Julien ÉLIE julien at
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


> 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