Am 28.12.2019 um 14:21 schrieb Lu Wei:
> On 2019-12-28 1:48, Wolfgang Jäth wrote:
>>
>> Groundhog requests first "HEAD 2", i. e. Article #2, and then simply
>> requests "BODY", obviously *meaning* "BODY 2". The 430 response from
>> Hamster indicates, that it seems to interpret such a "BODY" command
>> /without/ parameter as a request for a previously selected /MID/, not
>> for a previously selected /article number/ - but there's no MID at all
>> previously selected. If Hamser woud refer an empty "BODY" command to
>> article numbers, the failure responses had to be either
>> "412 - No newsgroup selected" or "423 - No article with that number".
>>
> I think you misread the log: the command after "HEAD 2" is "BODY
> <
1dd7e1be-57d8-40ce...@fm22g2000vbb.googlegroups.com>".
Yes, you're right; sorry.
> Though "BODY 2" is more natural, yet since it has <mid> from HEAD
> command, BODY <mid> should be OK too. I tested with telnet, got the
> same "430 Missing article" reply (though "body 2" will return the
> article body). I tried with other articles, most failed too, until I
> tried "head 40" and corresponding "body <mid>". Article 41 and 42 all
> works.
Looks like there are only 2 articles available in that group (which is
more than *I* had, before you did post here).
Can you take a look into the regarding ini-file
([hamster]\groups\hamster.en.config\dataa.ini), for the following entries:
[Ranges]
Local.Min
Local.Max
They should note the currently really available lowest resp. highest
article numbers. According to you Local.Min shoud note "40", right"?
All below is already purged (or dismissed; if the same article is pulled
simultaneously from different groups, the article number counter is
increased twice or even more, but only one of them is finally used).
> So it seems because articles before 40 are too old, I guess when
> Hamster searches a <mid>, it searches in a pool of <mid> instead of real
> database, and when it purges history, it actually purges that pool, so
> old <mid> can not be found. Is this the case?
Yes; to find an article by MID, hamster must search the index data,
which is stored in the IDX-file. As the vesting period for the group
articles itself and the history (i. e. index) can be set individually,
it's possible (and IIRC recomended, btw.), that the index register still
can hold MIDs of articles already beinig purged, as well as vice versa
(articles present, but not indexed any more).
According to your observation of GH being able to receive the headers,
the articles technically seem being present. And according to having no
access by MID request, the index (i.e. history) seems already purged.
This missmatch can be repaired by "File => Rebuild history", but only
for all groups together, and it may need some [tm] time. And of course
you'll lose all /previous/ informations about history entries,
especially about those being loaded in the past and already purged.
To avoid this problem again, you shold check "Configuration => Local
Servers => NNTP => Storage Settings" entries among each other, as well
as, if so, any maybe individual group settings. The holding period for
history should allways be /at/ /least/ as long as for any group, better
/longer/, /never/ less.