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/