[leafnode-list] Re: leafnode-2.0.0.alpha20061010a snapshot available
Martin
virenfang at arcor.de
Fri Oct 13 21:08:42 CEST 2006
On Tue, Oct 10, 2006 at 01:58:00AM +0200, Matthias Andree wrote:
> Leafnode 2.0.0.alpha20061010a is available from
> http://home.pages.de/~mandree/leafnode/beta/
>
> NEWS:
> KNOWN BUGS:
> * The code sometimes uses timeout_client where it should use a server timeout.
> |
> 20061010a: Changes since 20060831a:
> + Documentation: in leafnode(8)'s section on groupexpire, list the
> precedence information. Found by Clemens Fischer.
Does not work due to error handling ... =;o)
Sorry for late reply, much more sorry for not testing 20060831a! The bug
seems to have already appeared in there, if I tracked it down correctly.
|# fetchnews -vvvve -S news.cnntp.org
|
|[...]
|news.cnntp.org: de.comm.provider.status: no new articles
|news.cnntp.org: de.comm.provider.usenet: no new articles
|news.cnntp.org: de.comp.os.unix.linux.infos: no new articles
|de.newusers.infos: considering 68 articles 1691 - 1758, using XOVER
|de.newusers.infos: XOVER: 20 seen, 19 I have, 0 filtered, 1 to get
|de.newusers.infos: will fetch 1 articles
|sent ARTICLE 1692 command, in pipe: 1
|Wrong reply to ARTICLE command: "423 No such article number in this group"
|received article, in pipe: 0
|de.newusers.infos: error fetching, proceeding to next server
|[...]
"No such article number" was known. You (Matthias) released a patch and
corrected it in a following version.
The august version did not contain the checking for 2 arguments of the
server reply any more, you replaced it with checking for an error number
between 500 and 600 (which I'd consider correct):
(simple diffing of July and August, 31th)
|413c413,415
|< if (argcount < 2 || reply / 100 == 5)
|---
|> /* don't complain if artno missing,
|> * 423 replies for instance don't include it, but are non-fatal.
|> */
|> if (reply >= 500 && reply < 600)
|414a417
|> /* recoverable error */
You introduced a new veriable, "u":
|1139c1142
|< unsigned long last = 0;
|---
|> unsigned long last = 0, u;
You replaced your remark "handle error" by some real error handling:
|1259,1260c1262,1270
|< if (getarticles(stufftoget, outstanding, f) == 0) {
|< /* handle error */
|---
|>
|> u = getarticles(stufftoget, outstanding, f);
|> freefilter(f);
|> freelist(stufftoget);
|> if (u == 0) {
|> ln_log(LNLOG_SERR, LNLOG_CGROUP,
|> "%s: error fetching, proceeding to next server",
|> g->name);
|> return -2;
|1268,1269d1277
|< freefilter(f);
|< freelist(stufftoget);
The error "Wrong reply..." above seems to come from an late error-code
checking: In line 411 already this error is sent to the logfile, the
checking for the error code is done in line 415.
*If* I understand the below part right, the "proceeding to the next
server" is raised by the problem of getarticles() returning a number of
0 fetched articles.
So I "wrote" this little hack to get things working again. (This seems
like an error that can vanish any time to me, so I hurried up :)
***** *****
***** Please review if I break *any* other things. *****
***** *****
The patch worked for me as far as I could see (except for "Wrong reply
..." still appears). The first run of fetchnews *with* this patch made
fetchnews fetch the whole couple of newsgroups, the second run showed
me, that even de.newusers.infos was fetched.
Maybe any logfile now shows "-1" fetched articles. I do not consider
this as severe error, so I did not use my time to dig deeper into it.
I did not indent the line correctly, since I wanted to mark it as
"unofficial".
Have fun!
Martin
The patch follows:
diff -rN -u leafnode-2.0.0.alpha20061010a/fetchnews.c leafnode-2.0.0.alpha20061011/fetchnews.c
--- leafnode-2.0.0.alpha20061010a/fetchnews.c 2006-08-15 13:31:26.000000000 +0200
+++ leafnode-2.0.0.alpha20061011/fetchnews.c 2006-10-13 20:48:21.000000000 +0200
@@ -1122,6 +1122,7 @@
}
}
}
+if (artno_server == 0) artno_server = -1;
return artno_server;
}
More information about the leafnode-list
mailing list