[net.news.sa] Need help with 2.10.3 expire

root@smeagol.UUCP (The Mysterons) (05/09/86)

In article <750@rclex.UUCP>, walt@rclex.UUCP (Walter L. Weber) writes:
> After getting my system cleaned up I thought I would go through and expire
> the garbage articles, and FOOLISHLY did not back up the news directory before
> kicking off "expire -v7 -e0 -I -f Unknown@hplabs.UUCP >&RESULTS".
> 
> My questions are:
>       ...  I have either mis-understood the use of "-f somebody@where"
>       or there is a bug in expire.

That was the correct action to take; it is unfortunate that you got bitten.
I am not sure if it is a bug in expire, but here's some info:

	When the -f flag is given to expire, it sets a flag 'frflag' true.  It
also copies the username argument into a variable called 'badname'.  The 
frflag is referenced on one line via (line 377-379, expire.c in
2.10.3 4.3bsd-beta 6/6/85):

			     ((h.rectime+expincr > now) && !dorebuild && !frflag
				&& !usepost && h.recdate[0] != ' '))
				goto keephist;

The main reference is on line 542 (your mileage may vary; it shouldn't):

		if (frflag ? strcmp(baduser,h.from)==0 : now >= h.exptime) {
#ifdef DEBUG
			printf("cancel %s\n", filename);
#else /* !DEBUG */
			if (verbose)
				printf("cancel %s\n", filename);
			ulall(p2, &h);
			...

In order to find out if there is a bug, you can recompile expire with DEBUG
defined.  If you do this, ulall (UnLink ALL) will not be called, and your
news won't get nuked.  You *will* get the list of articles to be trashed, so
you can see if they really contain the hated "Unknown@hplabs" From: line.

I dunno, this test looks reasonable to me (the strcmp of the user name you
specified with -f, against the contents of the "From:" line), so I don't
know where it is coming from.  I *am* suspicious of lines with many '&&' in
them, tho ... :-)

My advice is: remake expire with DEBUG defined; run with your favorite
source level debugger, stopping at both 377 and 542 (don't specify rebuild
or whatever-sets-usepost etc.; test all values '&&'ed in line 377) and
see what is happening.  I will do this if I can get some time.

Hmm, I wonder if -e 0 has anything to do with this ... the plot sickens ...

The Mysterons

chen@gt-stratus.UUCP (Ray Chen) (05/12/86)

In article <750@rclex.UUCP>, walt@rclex.UUCP (Walter L. Weber) writes:
> After getting my system cleaned up I thought I would go through and expire
> the garbage articles, and FOOLISHLY did not back up the news directory before
> kicking off "expire -v7 -e0 -I -f Unknown@hplabs.UUCP >&RESULTS".
> 
> My questions are:
>       ...  I have either mis-understood the use of "-f somebody@where"
>       or there is a bug in expire.

It's a bug.  Gene ran an "expire -f Unknown@hplabs.UUCP" on gatech
recently and it killed off just about everything in the net and mod
groups.

See message 3519@gatech in net.news.config for the gory details.

	Ray Chen
	gatech!chen