64-bit highmarks in active files

Russ Allbery rra at stanford.edu
Tue Aug 19 19:52:55 UTC 2008


Julien ÉLIE <julien at trigofacile.com> writes:

> I have just tried the following thing:
>
>    xrefslave: true
>
> I telnet to send an IHAVE with
>
>    Xref: news.trigofacile.com trigofacile.test:2047483647
>
> It works fine.

typedef unsigned long           ARTNUM;

As long as an unsigned long on your system is 64 bits, INN will cope
internally.  If it isn't, weird things start happening.

> The article is correctly fed to other news servers.  It is saved
> under the number 2147483647 (the maximum value in fact). And I have:
>
> Aug 19 08:27:31 news innd: tradindexed: cannot write index record for 2147483647 in
>                /home/news/work/testserver/spool/overview/t/t/trigofacile.test.IDX: Invalid argument
> Aug 19 08:27:31 news innd: SERVER cant store overview for @0500000000077FFFFFFF0000000000000000@

My guess is that the problem here is unrelated to the size of the article
number itself and is due to the gap.  The IDX file for tradindexed
overview has one record per article number, so when you have a gap that
large, INN tried to create and then mmap a *huge* file.  You probably
don't have enough addressable memory to do that.

> Then, there is a discrepancy here:
>
> group trigofacile.test
> 211 51 1 2047483647 trigofacile.test
> list active trigo*
> 215 Newsgroups in form "group high low flags".
> trigofacile.test 2147483647 0000000001 y
> .
>
> The active file is updated but not the overview...
> Is it a bug?

The active file has to be updated before overview to do the article number
assignment.

> And is it a bug that the article 2847483647 was accepted?
> (And numbered 2147483647?)

Yup.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>

    Please send questions to the list rather than mailing me directly.
     <http://www.eyrie.org/~eagle/faqs/questions.html> explains why.


More information about the inn-workers mailing list