Invalid 431 response when server is paused

River Tarnell river at RT.UK.EU.ORG
Sun Jan 1 01:47:35 UTC 2012


While working on some news software I noticed something odd from a peer:

Jan 01 01:36:18 INFO:     feeder: unit0[2001:470:933e::5]:nntp: expected 
msg-id <4efed3fb$0$30390$a8266bb1 at> but got 431 
Expiring  process 3697

This server is running:

200 InterNetNews server INN 2.5.2 ready (transit mode)

The problem seems to be the code for handling a paused server state in 

    } else if (Mode == OMpaused) {
        xasprintf(&buff, "%d %s", NNTP_FAIL_CHECK_DEFER, ModeReason);

ModeReason is set to "Expiring process %ld" while server expiry is 

I tested this on my own server and was able to reproduce the problem:

isis# ctlinnd pause 'testing'
harmony% telnet isis 433
Trying 2a01:348:65::3...
Connected to isis.RT.UK.EU.ORG.
Escape character is '^]'.
200 InterNetNews server INN 2.5.2 ready (transit mode)
CHECK <a at b>
431 testing

And then:

Jan 01 01:45:02 INFO:     feeder: isis[2a01:348:65::3]:nnsp: expected 
msg-id <CP-dnS4J7bceqGLTnZ2dnUVZ8tWdnZ2d at> but got 431 

This behaviour is clearly wrong: 431 should always have the message-id 
as the first argument, no matter why it was deferred.

        -- river.                      | Free Usenet:
Non-Reciprocal Laws of Expectations:   | PGP: 2B9CE6F2
    Negative expectations yield negative results.
    Positive expectations yield negative results.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4184 bytes
Desc: not available
URL: <>

More information about the inn-workers mailing list