Package: sendmail
Version: 8.13.4-1
Severity: critical
When migrating a server from woody to sarge, the following error is displayed
on Sendmail's startup if there was mail queued at the time of upgrade.
Jun 3 17:04:57 mailtest1 sendmail[25561]: j4VDWurI013546: SYSERR(root):
readqf: ./qfj4VDWurI013546: line 4: bad line "G0"
Jun 3 17:04:57 mailtest1 sendmail[25561]: j4VDWurI013546: Losing
./qfj4VDWurI013546: unrecognized line
Bug marked as critical, as the entire queue will be marked as lost, and not
delivered. This can be thousands of messages on high volume servers.
The problem was not discovered earlier when upgrading test boxes, as they had
no queued mail at time of upgrade.
Hunting through the code, it seems that a QF file V7 Y and G options are no
longer supported. These are not truly important to message queueing, and
should be ignored instead of effectively losing the mail queue.
The apparent source of the problem, sendmail/queue.c:
4444 #if _FFR_QUEUEDELAY
4445 case 'G':
4446 case 'Y':
4447
4448 /*
4449 ** Maintain backward compatibility for
4450 ** users who defined _FFR_QUEUEDELAY in
4451 ** previous releases. Remove this
4452 ** code in 8.14 or 8.15.
4453 */
4454
4455 if (qfver == 5 || qfver == 7)
4456 break;
4457
4458 /* If not qfver 5 or 7, then 'G' or 'Y' is
invalid */
4459 /* FALLTHROUGH */
4460 #endif /* _FFR_QUEUEDELAY */
4461
4462 default:
4463 syserr("readqf: %s: line %d: bad line \"%s\"",
4464 qf, LineNumber, shortenstring(bp,
MAXSHORTSTR));
4465 err = "unrecognized line";
4466 goto fail;
Two potential fixes:
1) patch sendmail/queue.c:
--- sendmail/queue.c.old 2005-06-03 17:37:55.282259719 +1000
+++ sendmail/queue.c 2005-06-03 17:39:23.403051888 +1000
@@ -4441,7 +4441,6 @@
nomore = true;
break;
-#if _FFR_QUEUEDELAY
case 'G':
case 'Y':
@@ -4457,7 +4456,6 @@
/* If not qfver 5 or 7, then 'G' or 'Y' is invalid */
/* FALLTHROUGH */
-#endif /* _FFR_QUEUEDELAY */
default:
syserr("readqf: %s: line %d: bad line \"%s\"",
2) Add something to the postinstall script to remove the Y and G lines from QF
files, like:
for file in /var/spool/mqueue*/[Qq]f*; do echo -n "file: $file: "; grep -v
^[GY] $file > /tmp/file; mv /tmp/file $file; echo "done."; done
Other info:
dpkg --status sendmail:
Package: sendmail
Status: install ok installed
Priority: extra
Section: mail
Installed-Size: 244
Maintainer: Richard A Nelson (Rick) <[EMAIL PROTECTED]>
Architecture: all
Version: 8.13.4-1
Replaces: sendmail-tls
Depends: sendmail-base (= 8.13.4-1), sendmail-bin (= 8.13.4-1), sendmail-cf (=
8.13.4-1), sensible-mda (= 8.13.4-1), rmail (= 8.13.4-1)
Suggests: sendmail-doc
________________________________________
Martin Foster | Systems Engineer
Pacific Internet (Australia) Pty Ltd
P: +61 3 9674 7659
�
Australia I Singapore I Hong Kong I Philippines I India I Thailand I Malaysia
http://www.pacific.net.au/disclaimer/