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!darrell
henry@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