NNTP COMPRESS clients? RFC 8054

Julien ÉLIE julien at trigofacile.com
Sat Jul 13 13:55:08 UTC 2019


Hi Eric,

> I've prepared a patch to the
> Perl Net::NNTP module and am hoping I got everything right...
> I've only lightly tested it against news.gmane.org which runs inn:
> 
>    https://rt.cpan.org/Ticket/Display.html?id=129967

I've just taken the time to have a look at it.  A few comments below:


+	LINE_MAX => 512, # RFC 977 section 2.3

Now "RFC 3977 Section 3.1" :)



+	$err == Z_OK or die "Failed to initialize zlib deflate stream: $err";

Shouldn't a 403 response code be offered?  The connection then goes on, 
uncompressed.



+# RSS usage for 10K idle-but-did-something NNTP clients on 64-bit:
+#   TLS + DEFLATE :  1.8 GB  (MemLevel=9, 1.2 GB with MemLevel=8)
+#   TLS only      :  <200MB
+#   plain         :   <50MB

How did you test those 10k connections?  (with your test suite 
nntpd-validate.t?)



+	# nnrpd (INN) and Compress::Raw::Zlib favor MemLevel=9,
+	# but the zlib C library and git use MemLevel=8
+	# as the default.  Using 8 drops our memory use with 10K
+	# TLS clients from 1.8 GB to 1.2 GB, but...
+	# FIXME: sometimes clients fail with 8, so we use 9
+	# -MemLevel => 9,

Strange that clients fail with mem level 8.  Seems like a bug with such 
clients.
Hopefully nnrpd uses mem level 9 anyway.



+	# Net::NNTP emit different line-endings depending on TLS or not...:
+	$data =~ tr/\r//d;

Shouldn't it be fixed in Net::NNTP?



> I also implemented it server-side in public-inbox-nntpd[1],
> which powers news.public-inbox.org, but there's a danger I'm
> implementing something wrong on both ends in that case :x

Time to implement it in nntp.perl.org then :)
It runs Colobus, an NNTP news server written in Perl by Ask Bjørn Hansen.



> Thanks for reading and all your work on inn!

You're welcome!

-- 
Julien ÉLIE

« Qui joue des flûtes perd sa hutte ! » (Mme Agecanonix)


More information about the inn-workers mailing list