Problems with cnfsstat output...

Russ Allbery rra at stanford.edu
Sat Oct 18 05:12:11 UTC 2003


Todd Kaehler <kaehler at psmfc.org> writes:

> I am using cycbuffs of 2 Gb (was using 1 Gb cycbuffs without any 
> problems) and when I do a 'cnfsstat -a' I now get:

> # cnfsstat -a
> Class LARGE  for groups matching "*", article size min/max: 200000/0
> Malformed UTF-8 character (overflow at 0xdd3fd70e, byte 0x98, after 
> start byte 0xff) in pattern match (m//) at /usr/lib/news/bin/cnfsstat 
> line 465.

This line in INN 2.3.x (which is what I assume you're using) is in a line
where it's trying to find the message ID of a message.  I'm not sure
what's going on there; maybe you have a bunch of messages with weird
characters in the message ID?  In any case, I don't know how to fix this.

> Note it says the size is 1.00 GBytes (not 2 GBytes).

I think I know how to fix this.  I believe this is the same issue as was
reported on news.software.nntp.  I'm currently hoping the following patch
will fix the problem; if you can test this, I'd be much appreciative (note
that it's against CURRENT, though, so I'm not sure if it will apply).

--- cnfsstat.in 2002/10/06 04:11:42     1.18
+++ cnfsstat.in 2003/10/18 04:59:14
@@ -17,6 +17,7 @@
 use vars qw($opt_l $opt_h $opt_a $opt_s);
 use Getopt::Long;
 use Math::BigInt;
+use Math::BigFloat;
 use English;
 
 my($conffile) = "$inn::pathetc/cycbuff.conf";
@@ -324,7 +325,7 @@ sub human_readable {
     my $factor = 1024;
 
     my $unit = -1;
-    my $oldscaled = $val / $base;
+    my $oldscaled = Math::BigFloat->new ($val) / $base;
     my $scaled = $oldscaled;
     while ( ( int($scaled) > 0 ) && ( $unit < $#name ) ) {
        $oldscaled = $scaled;

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>

    Please send questions to the list rather than mailing me directly.
     <http://www.eyrie.org/~eagle/faqs/questions.html> explains why.


More information about the inn-workers mailing list