I wrote a long time ago ... > After looking at the log files I think I've found a pattern: This > happens every time when no article was cancelled within the last 60 > minutes. That's actually peertimeout in inn.conf. > Is it possible the socket connection is closed after such a timeout? > I'd add an according socket re-creation in perl-nocem then. The patch attached checks for a timeout and re-opens the socket if required. Additionally, perl-nocem will switch to cancel_ctlinnd in case cancel_nntp fails after sending the Message-ID. Christoph --- /usr/lib/news/bin/perl-nocem 2006-09-26 20:39:17.000000000 +0200 +++ perl-nocem 2007-04-27 23:15:29.000000000 +0200 @@ -38,6 +38,8 @@ my $use_syslog = 0; my $log_open = 0; my $nntp_open = 0; +my $last_cancel = 0; +my $socket_timeout = $inn::peertimeout - 100; my $logfile = $inn::pathlog . '/perl-nocem.log'; @@ -371,6 +373,11 @@ my $ids = shift; my $r; + if ($nntp_open and time - $socket_timeout > $last_cancel) { + logmsg('Close socket for timeout'); + close (NNTP); + $nntp_open = 0; + } if (not $nntp_open) { use Socket; if (not socket(NNTP, PF_UNIX, SOCK_STREAM, 0)) { @@ -400,8 +407,10 @@ if (($r = ) !~ /^289/) { $r =~ s/\r\n$//; logmsg("cannot cancel $_: $r", 'error'); + goto ERR; } } + $last_cancel = time; return; ERR: @@ -463,7 +472,7 @@ # lint food print $inn::pathrun.$inn::pathlog.$inn::pathetc.$inn::newsbin.$inn::pathbin - . $inn::pathtmp; + . $inn::pathtmp.$inn::syslog_facility.$inn::peertimeout; __END__