Removing overview lines when cancelling articles

Julien ÉLIE julien at trigofacile.com
Sat Jan 30 11:30:55 UTC 2010


Hi Lars,

>> The overview data is still returned (via HDR, OVER, LISTGROUP, etc.).
>
> Is this with inn 2.5.1?  I definitely works for me with that patch.  If
> it doesn't work for you, try stepping through the function and see where
> it fails.

It is with the latest CURRENT version of INN.  The result would normally
be the same with INN 2.5.1.

Well, let's stepping...

    Xref: news.trigofacile.com trigofacile.test:390


The result of cvector_split_space() is strange:

(gdb) print *groups
$4 = {count = 3, allocated = 2, strings = 0x847c688}
(gdb) print groups->strings[0]
$5 = 0x830d4c0 "news.trigofacile.com"
(gdb) print groups->strings[1]
$6 = 0x8482358 "ly"
(gdb) print groups->strings[2]
$7 = 0x830d4d5 "trigofacile.test:390\r\n"

I do not know how "ly" (in a memory address $6 farther than $7) can be here.
Pretty weird.  Maybe gdb optimizations :-/

OVadd() could anyway be optimized not to parse the name of the server.


... let's go on:

tdx_data_cancel (data=0x821e7d8, artnum=390) at tradindexed/tdx-data.c:637
(gdb) print *data
$21 = {path = 0x8424d70 "/home/news/spool/overview/t/t/trigofacile.test",
  writable = true, remapoutoforder = false, high = 388, base = 1, indexfd = 35,
  datafd = 36, index = 0x0, data = 0x0, indexlen = 0, datalen = 0,
  indexinode = 8569519, refcount = 1}

OK, then it shows we properly find out the data (for trigofacile.test)
and the article number (390).

However, there is an issue with the contents of the data:  the high water
mark is reported to be 388.  Which is clearly wrong.  And the function
aborts here because 390 > 388...

Yet, I already have articles 389 and 390 in my overview data:

% tdx-util -i -n trigofacile.test
trigofacile.test 390 7 1 351 y 0 8569519

% tdx-util -g -n trigofacile.test
389 101951 507 1264841822 0 @050000000007000001850000000000000000@
390 102458 546 1264848003 0 @050000000007000001860000000000000000@




I still do not understand how you manage to get it work with your
tradindexed overview.  I do not manage to have it be aware of the
current data :-/
Do you have special parameters in inn.conf for overcachesize or
things like that?
-> I assume nnrpdcheckart is FALSE.

Especially when I read in our source code:

**  Note that once we have a consistent set of data files open, we don't need
**  to aggressively check for new data files until someone asks for an article
**  outside the range of articles that we know about.  We may be working from
**  outdated data files, but the most we'll miss is a cancel or an expiration
**  run.  Overview data doesn't change; new data is appended and old data is
**  expired.  We can afford to check only every once in a while, just to be
**  sure that we're not going to hand out overview data for a bunch of expired
**  articles.


So I bet it's normal behaviour and I would be interested to know how
you make it work directly with your server.
I post, then cancel.  I still see the overview data.  What else do you do?

Note that if I post, *restart* INN and cancel the article, it works fine :-)
(The cached overview data file has been updated because of the restart.)

-- 
Julien ÉLIE

« The hardest thing is to go to sleep at night, when there are
  so many urgent things needing to be done.  A huge gap
  exists between what we know is possible with today's machines
  and what we have so far been able to finish. »  (Donald Knuth) 




More information about the inn-workers mailing list