darrell@urbana.mcd.mot.com (Darrell McIntosh) (03/06/91)
We've been running C news (Patchdate 15-Dec-1990) on our system here for
the past month and it's been great - barely any problems. However,
yesterday I decided to run addmissing from cron overnight and ran into a
problem. I got a complaint from histslash saying that an assert had
failed:
histslash urping on
Assertion failed: last != NULL, file histslash.c, line 33
/usr/tools/local/contrib/cnews/bin/maint/addmissing: 9795 abort - core dumped
I did a little investigating and found the source of the problem. In
addmissing there is a command line that looks like
comm -13 /tmp/hist$$ /tmp/tree$$ | histinfo | sort |
awk -f $NEWSBIN/expire/histdups | histslash >/tmp/new$$
The comm command found no differences in the two files (meaning I didn't
have any missing files). Things in the pipeline worked fine until it got
to the awk script which added a null line to the pipe. (In the END
portion of the awk script it fails to check if the script had read
anything.) The null line causes histslash to fail the assert.
The following context diff is a fix for the problem in expire/histdups:
*** histdups.old Tue Mar 5 12:15:42 1991
--- histdups Tue Mar 5 12:15:49 1991
***************
*** 11,14 ****
} else
names = names " " $3
}
! END { print mesgid, dates, names }
--- 11,16 ----
} else
names = names " " $3
}
! END { if (mesgid != "")
! print mesgid, dates, names
! }
--
Darrell McIntosh, Motorola Computer Group, Urbana Design Center
Email: darrell@urbana.mcd.mot.com, udc!darrell, uunet!uiucuxc!udc!darrellhenry@zoo.toronto.edu (Henry Spencer) (03/06/91)
In article <1991Mar5.184229.10851@urbana.mcd.mot.com> darrell@urbana.mcd.mot.com (Darrell McIntosh) writes: >The following context diff is a fix for the problem in expire/histdups: Yup. A virtually identical fix will be along in the next patch (ETA: early next week; would be tomorrow except that I insist on running the stuff for a few days first). This one is annoying but more or less harmless, since you get it only if addmissing didn't have any work to do. :-) -- "But this *is* the simplified version | Henry Spencer @ U of Toronto Zoology for the general public." -S. Harris | henry@zoo.toronto.edu utzoo!henry
res@colnet.uucp (Rob Stampfli) (03/09/91)
>>The following context diff is a fix for the problem in expire/histdups: > >This one is annoying but more or less harmless, since you get it only >if addmissing didn't have any work to do. :-) I ran addmissing once, when I noticed a problem with an orphan note. It worked fine. I don't generally run it, though, on any regular basis. My question: is it something I should stick it in the crontab to sweep out any potential problems once a week or so, or should I only run it when there is cause? -- Rob Stampfli, 614-864-9377, res@kd8wk.uucp (osu-cis!kd8wk!res), kd8wk@n8jyv.oh
henry@zoo.toronto.edu (Henry Spencer) (03/12/91)
In article <1991Mar8.213005.1660@colnet.uucp> res@colnet.uucp (Rob Stampfli) writes: >I ran addmissing once, when I noticed a problem with an orphan note. It >worked fine. I don't generally run it, though, on any regular basis. My >question: is it something I should stick it in the crontab to sweep out >any potential problems once a week or so, or should I only run it when there >is cause? The intent was that it be run only for cause. Barring system failures or resource exhaustion, C News does not lose articles. When I ran addmissing for testing, at a time when our system had run many months without a history rebuild, it turned up a total of four articles, all orphaned due to a messy crash during news processing. We're admittedly in a favorable position because utzoo is very reliable. If you've got significant reliability problems, you might want to run addmissing, say, once every couple of months. If you need it more often than that, you've got problems that need fixing. -- "But this *is* the simplified version | Henry Spencer @ U of Toronto Zoology for the general public." -S. Harris | henry@zoo.toronto.edu utzoo!henry