Summary: | trying to read message from an NNTP group (with all expired articles. | ||
---|---|---|---|
Product: | Claws Mail (GTK 2) | Reporter: | Luuk <luuk34> |
Component: | NNTP | Assignee: | users |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jean.diraison |
Priority: | P3 | ||
Version: | 3.17.1 | ||
Hardware: | PC | ||
OS: | Windows 10 |
Description
Luuk
2018-12-09 18:18:51 UTC
(In reply to comment #0) > There should be a better way to do it than this way: Such as? For example this (http://effbot.org/zone/socket-intro-nntp.htm) website has an explanation about this: Client: GROUP comp.lang.python Server: 211 367 13887 14268 comp.lang.python Above means that articles 13887 until 14268 might(!) be available. It's of no use to try to fetch an article outside this range, and an article need not be present! Better/other reference: (https://tools.ietf.org/html/rfc3977#page-36) 6.1.1. GROUP 6.1.1.1. Usage Indicating capability: READER Syntax GROUP group Responses 211 number low high group Group successfully selected 411 No such newsgroup Parameters group Name of newsgroup number Estimated number of articles in the group low Reported low water mark high Reported high water mark (In reply to comment #2) > Client: GROUP comp.lang.python > Server: 211 367 13887 14268 comp.lang.python > > Above means that articles 13887 until 14268 might(!) be available. > It's of no use to try to fetch an article outside this range, > and an article need not be present! That is exactly what Claws Mail is doing in order to learn what range of articles to request from the server. If you look in the network log at the beginning of that NNTP session, you will see a GROUP command sent to the server, and a response, with a huge number as "high water mark". Claws Mail will then start requesting info about articles which are in range between the last seen article it has remembered (or the "low water mark" if this is the first time this newsgroup is being open), and "high water mark". I will hazard a guess that this is a newsgroup on Gmane.org, which is known to advertise absurdly high ranges of articles, despite most of the actual articles not being available anymore. A RFC-compliant newsreader will then dutifully request all the articles from the range advertised in the GROUP command reply, which is what you see in the long snipped you pasted. Now, until last year, Claws Mail just requested full range in one big batch, which made the entire app look frozen for several minutes, while the server was doing god knows what. (This also sometimes triggered bug in the middleware library we use for NNTP[1].). Instead, we changed the code[2] to request articles in batches of 5000, which allowed us to get rid of the long freeze, as well as bypass the mentioned bug. 1. https://github.com/dinhviethoa/libetpan/issues/283 2. https://git.claws-mail.org/?p=claws.git;a=commitdiff;h=9729bf The start of the logging looks actually as this: * Account 'luuk@invalid.lan': Connecting to NNTP server: news.xs4all.nl:119... [19:48:52] NNTP< 200 news.xs4all.nl NNRP Service Ready (posting ok). [19:48:52] NNTP> MODE READER [19:48:52] NNTP< 200 news.xs4all.nl NNRP Service Ready (posting ok). [19:48:52] NNTP> GROUP xs4all.ipv6 [19:48:52] NNTP< 211 1 4132 4132 xs4all.ipv6 * getting xover 4132 - 4132 in xs4all.ipv6... [19:48:52] NNTP> XOVER 4132-4132 [19:48:52] NNTP< 224 data follows [19:48:52] NNTP< . [19:48:52] NNTP> XHDR newsgroups -1-4998 [19:48:52] NNTP< 221 newsgroups data follows [19:48:52] NNTP< . [19:48:52] NNTP> XHDR newsgroups 4999-9998 [19:48:52] NNTP< 221 newsgroups data follows [19:48:52] NNTP< . [19:48:52] NNTP> XHDR newsgroups 9999-14998 [19:48:52] NNTP< 221 newsgroups data follows [19:48:52] NNTP< . [19:48:52] NNTP> XHDR newsgroups 14999-19998 [19:48:52] NNTP< 221 newsgroups data follows [19:48:52] NNTP< . [19:48:52] NNTP> XHDR newsgroups 19999-24998 [19:48:52] NNTP< 221 newsgroups data follows [19:48:52] NNTP< . [19:48:52] NNTP> XHDR newsgroups 24999-29998 [19:48:52] NNTP< 221 newsgroups data follows Article 4132 if from 11-7-2018 (info from my thunderbird-feed) When trying to get that article using telnet I do see this: 200 news.xs4all.nl NNRP Service Ready (posting ok). group xs4all.ipv6 211 1 4132 4132 xs4all.ipv6 article 4132 423 No such article number in this group xover 4132-4132 224 data follows . But claws seems not to stop after this.... B.T.W. The 'discussion' in xs4all.ipv6 was moved to xs4all.general That looks like a bug, likely introduced by the commit I mentioned above. I will have a look at the code, thanks. Changes related to this bug have been committed. Please check latest Git and update the bug accordingly. You can also get the patch from: http://git.claws-mail.org/ ++ ChangeLog 2018-12-12 19:48:04.279307716 +0100 http://git.claws-mail.org/?p=claws.git;a=commitdiff;h=d76f8acd074e1393936923dcfaa7f85a74e00587 Author: Andrej Kacian <ticho@claws-mail.org> Date: Wed Dec 12 19:43:13 2018 +0100 Handle corner case in news_get_extra_fields() where msglist is empty This makes the function quit early, instead of requesting XHDR with bogus ranges from the server. Closes bug #4133: trying to read message from an NNTP group (with all expired articles. |