perl_access hash value length limit?

David E Mussulman mussulma at illinois.edu
Tue Jan 11 23:28:42 UTC 2011


Hi gang,

I think I've found a bug in INN 2.5.2 with the readers.conf perl_access
access() returned hash value length.  I added a bunch of newsgroups
today that pushed the character count in the 'read' key's value from
6456 characters to 8238 characters.  With a 'read' string that long, INN
didn't work anymore for incoming connections.  Syslog reported the error
"syntax error in (null)(2), Expected value." and terminated the
connection.

If I reverted my newsgroup adds from the flatfile that my perl_access
script uses to build the hash, back down to its this-morning length of
6456 characters, it worked again.  Add one or two newsgroups more and it
still worked.  So somewhere between those two value's character lengths,
INN stopped liking it.

I don't think perl cares, or that we've hit a limit in perl, since a
small test perl script that calls the same perl_access library and
simply prints out the resulting hash showed the thing in entirity
(that's how I was able to see the character counts).  I'm hoping it's
something simple like a buffer limit being hit in INN.

Backstory: We've been using INN for years to support internal newsgroups
for CS course discussions.  18 months ago we started naming the groups
per-semester (for more granular access control and versioning), but that
means each term we add 100 or so newsgroups.  Either wildmats didn't
work in the perl_access hash at one time, or we decided not to use them
but each newsgroup is enumerated individually in the read and post hash
values.  FWIW, I was able to squeeze all of this semester's groups in by
just putting a comma inbetween groups (I had comma-space before) and my
current length is 7803.  That'll get me through the start of the
semester, but I'll need a solution by summer.

Thanks for the help,
Dave



More information about the inn-workers mailing list