[news.software.b] C News, 386/ix, assorted questions/experiences

tpf@jdyx.UUCP (Tom Friedel) (08/13/89)

Some assorted C News experiences.  Please excuse anything that
has already been discussed, or any of my misinformation.

I am running 386/ix.  The libstdio code fails only in one case,
and that is when stdiock.fast -i -u is sent to stdout.  I get the
message that _cnt is not compatible.  Why, and will this be a problem.

I am running nn, which expires based upon 3 field in active file.  
C News does not update this field with expire, and upact is murder
on my disk drive.  Expire -c 'checks consistency of active file'. 
What exactly does expire -c do?  And what is the best way to use NN
with C News?

If i get an article that is posted to two newsgroups, one which i get
and one which I don't, C News will put it into the first group
on the newsgroups: line (creating the directory if necessary), regardless 
of whether or not this group is in my sys file.

When I first tried to build C News with dbz, I got a segmentation fault
in dbz hash(). I rebuilt with dbm and all was OK.  I am guessing that
i needed to do a mkhistory before posting to the newly created C News
with dbz, but have not confirmed this theory.  

Thanks,

Tom

Looking through the code, you see things like 'super-kludge for B News
backward compatability' all over the place.  Wouldn't it be great if
every one would agree C News is 'the' news software, and all this could
be ripped out.
-- 
Tom Friedel             Public Access Unix BBS
tpf@prism.gatech.edu    ...gatech!emory!jdyx!tpf          
(404) 320-7624          (404) 321-5020                  

geoff@utstat.uucp (Geoff Collyer) (08/14/89)

Just a reminder: "Distribution: usa" only gets to Toronto by a fluke of
our nntp connections.  Canada is not yet part of the USA, so na or
world distribution is appropriate and I have changed the distribution
on this followup to na.

Tom Friedel:
>I am running 386/ix.  The libstdio code fails only in one case,
>and that is when stdiock.fast -i -u is sent to stdout.  I get the
>message that _cnt is not compatible.  Why, and will this be a problem.

We don't know why your vendor has changed the meaning of _cnt, but it
doesn't matter; if you get any stdiock failure, you have to use your
vendor's stdio.  We hope that if they diddled the semantics of _cnt or
_ptr that they have also tuned the guts, but we can't promise.

>I am running nn, which expires based upon 3 field in active file.  
>C News does not update this field with expire, and upact is murder
>on my disk drive.  Expire -c 'checks consistency of active file'. 
>What exactly does expire -c do?  And what is the best way to use NN
>with C News?

I'll let Henry give the definitive answer on upact (which I only run
weekly and I don't think zoo runs it at all).  expire -c doesn't remove
nor archive any files, it just checks that explist and active are okay,
generating error messages (and I assume bad status) if not.  expire(8)
really does say this.

>If i get an article that is posted to two newsgroups, one which i get
>and one which I don't, C News will put it into the first group
>on the newsgroups: line (creating the directory if necessary), regardless 
>of whether or not this group is in my sys file.

If an article is accepted for filing by relaynews (because your
machine's (sys file) subscription list matched at least one newsgroup
in the article's Newsgroups: line), relaynews will then attempt to file
the article in all the groups in the Newsgroups: line.  (We shall
ignore the precise rules for junking here; see relaynews(8) if you are
interested.)  Since the active file (which should really be called
"groups", not "active") defines the set of newsgroups accepted locally,
it is consulted during filing; it is assumed that if you don't want a
group, you either have its flag field set to "x" (meaning don't junk,
just ignore) OR you don't have it in your active file and your
subscription list refuses it.  Leaving a group un-x'ed in your active
file even if refused by your subscription list will cause occasional
cross-posted articles to be filed in that group, and leaving it
permitted by your sys file but not in active may result in the article
being junked.

>When I first tried to build C News with dbz, I got a segmentation fault
>in dbz hash(). I rebuilt with dbm and all was OK.  I am guessing that
>i needed to do a mkhistory before posting to the newly created C News
>with dbz, but have not confirmed this theory.  

Since dbm and dbz use completely different file formats, you have to
pick one and use it consistently everywhere.  The core dump in dbz is
one reason that we have been a bit slow to pick it up and endorse it,
though some time we hope to have an improved dbz which we will endorse.

>Looking through the code, you see things like 'super-kludge for B News
>backward compatability' all over the place.  Wouldn't it be great if
>every one would agree C News is 'the' news software, and all this could
>be ripped out.

The only kludges that come to mind immediately are inews -C,
Supersedes:, foo.bar.ctl, Subject: cmsg, (unbatched) ihave/sendme, and
"internet" and "backbone" in mailpaths.  All but "backbone" are related
to control messages, which provide much of the complication in news
software anyway.

inews -C we plan to deal with in the next patch.  Supersedes:  only
affects comp.mail.maps and can either be handled by expiring
comp.mail.maps faster than normal or by running superkludge from
crontab.  foo.bar.ctl is recommended by RFC 1036 so we chose to support
it rather than say "C news conforms to RFC 1036 except for the
following kludges: ..."; it is truly ugly and utterly unnecessary, but
god only knows how many newsreaders rely upon it.  "Subject: cmsg " is
even worse, but RFC 1036 requires that it be recognised.  Unbatched
ihave/sendme is a bad idea and the description of ihave/sendme in RFC
1036 is so ethereal that I don't think it can be read as requiring
unbatched ihave/sendme.  Batched ihave/sendme isn't a lot better, but
we had to provide some form of ihave/sendme to get the 1036
Goodhousekeeping Seal of Approval, it's only three pages of code, and I
was waiting for Henry anyway.  "internet" doesn't really belong in
mailpaths (which should really be called "modroutes"), it was nailed on
the side, but this brings up the whole ugly subject of Path: vs From:
for replies.  "backbone" means "all"; it's just silly syntactic sugar.
-- 
Geoff Collyer		utzoo!utstat!geoff, geoff@utstat.toronto.edu

woods@robohack.UUCP (08/14/89)

In article <1989Aug14.040740.3151@utstat.uucp> geoff@utstat.uucp (Geoff Collyer) writes:
> Tom Friedel:
> >I am running 386/ix.  The libstdio code fails only in one case,
> >and that is when stdiock.fast -i -u is sent to stdout.  I get the
> >message that _cnt is not compatible.  Why, and will this be a problem.
>
> We don't know why your vendor has changed the meaning of _cnt, but it
> doesn't matter; if you get any stdiock failure, you have to use your
> vendor's stdio.  We hope that if they diddled the semantics of _cnt or
> _ptr that they have also tuned the guts, but we can't promise.

Just as a side note in this conversation:  I am running beta C News on
ISC 386/ix 1.0.6 with the 1.0.5 compiler and Jun23 C News on a 3B2
with SysVr3.1 and CPLU 4.1.  I have not done the stdio tests on the
386, but when I did them on the 3B2, I had the same result as Tom.

However, since I'd already been running with the libstdio code in both
places for >2 weeks on the 3B2, and >6 months on the 386, I've
continued to use it.

The only odd, un-explicable thing that has happened was an article
being tossed into the errlog because relaynews thought it was out of
sync (with "relaynews out of sync, tossing:" messages).  Since this
happened on both machines, I though it might have been a bad batch,
though I never got a chance to examine the batch.

[Geoff:]
> [Tom:]
> >When I first tried to build C News with dbz, I got a segmentation fault
> >in dbz hash(). I rebuilt with dbm and all was OK.  I am guessing that
> >i needed to do a mkhistory before posting to the newly created C News
> >with dbz, but have not confirmed this theory.  
> 
> Since dbm and dbz use completely different file formats, you have to
> pick one and use it consistently everywhere.  The core dump in dbz is
> one reason that we have been a bit slow to pick it up and endorse it,
> though some time we hope to have an improved dbz which we will endorse.

I use dbz on both machines, and have definite evidence of other
successes.  Someone should sdb or dbx the sucker!  I can't (yet),
'cause I've not had the core dump.  :-)

I did accidentally run the fake dbm here on the 3B2 ('cause I forgot
that the build stuff didn't recommend it), and it ran fine too, (but
slow).

The one thing I was impressed with was watching mkhistory work on a
system with ~50 Kb news in the spool, and using the fake dbm (it was a
25(? fast anyway) MHz AT&T 6386).
-- 
						Greg A. Woods

woods@{robohack,gate,tmsoft,ontmoh,utgpu,gpu.utcs.Toronto.EDU,utorgpu.BITNET}
+1-416-443-1734 [h]	+1-416-595-5425 [w]	Toronto, Ontario;  CANADA

henry@utzoo.uucp (Henry Spencer) (08/14/89)

In article <1989Aug13.161806.15829@jdyx.UUCP> tpf@jdyx.UUCP (Tom Friedel) writes:
>... Expire -c 'checks consistency of active file'. 
>What exactly does expire -c do? 

Basically, expire -c does all of expire's startup processing -- including
reading and parsing the expiry control file and the active file -- and then
exits.  It's mostly a debugging aid for people fiddling with control files.

> And what is the best way to use NN with C News?

As we've said before in this forum, news readers that expect a contiguous
or even near-contiguous sequence of articles between the "min" and "max"
numbers from the active file are broken, pure and simple -- this assumption
is just plain wrong.  It was fixed in the major news readers, e.g. B News
"readnews", years ago.  All I can suggest is running "upact" nightly in
the wee small hours.

>If i get an article that is posted to two newsgroups, one which i get
>and one which I don't, C News will put it into the first group
>on the newsgroups: line (creating the directory if necessary), regardless 
>of whether or not this group is in my sys file.

As Geoff has pointed out, there are complicated interactions between the
sys file and the active file here.  We spent considerable effort and
head-scratching getting the C News behavior "right", in the sense of
being the behavior that was most useful and gave the most control.
It's not, unfortunately, trivial to understand.

>When I first tried to build C News with dbz, I got a segmentation fault
>in dbz hash(). I rebuilt with dbm and all was OK.  I am guessing that
>i needed to do a mkhistory before posting to the newly created C News
>with dbz, but have not confirmed this theory.  

Correct.  Dbm and dbz files are *not* compatible; it has to be all one
or all the other.
-- 
V7 /bin/mail source: 554 lines.|     Henry Spencer at U of Toronto Zoology
1989 X.400 specs: 2200+ pages. | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

epsilon@wet.UUCP (Eric P. Scott) (08/14/89)

In article <1989Aug14.040740.3151@utstat.uucp> geoff@utstat.uucp (Geoff Collyer) writes:
>                                                  Supersedes:  only
>affects comp.mail.maps

Supersedes: is used by news.announce.newusers and we very much
depend on it!
					-=EPS=-

davison@drivax.UUCP (Wayne Davison) (08/15/89)

tpf@jdyx.UUCP (Tom Friedel) writes:
>I am running nn, which expires based upon 3 field in active file.  
>C News does not update this field with expire, and upact is murder
>on my disk drive.

Are you at least running the modified version of upact that replaces the

	min=`ls $NEWSARTS/$dir | egrep '^[0-9]+$' | sort -nr | tail -1`
with
	min=`lowest $NEWSARTS/$dir`

(after building and installing lowest, of course)?  This in itself decreased
the running time of upact from slightly over 14 minutes to about 7 minutes &
20 seconds.  (We run 4.3BSD on a vax 11/780 with only about 30 meg of news
on-line).  I only discovered this "option" after writing an entirely C version
of my own (but it executes in 30 seconds, so I'm not complaining).  I'm going
to send it to the C news folk for their perusal as an optional upact (it
requires directory functions, so they probably won't want to make it the
default, like "lowest" isn't the default).

Also, it is my firm belief that empty newsgroups should have their min field
set to one higher than their max field -- newsreaders like rn & nn interpret
this as an empty group rather than a group with 1 non-existant message.  I
wrote my upact that way, and modified addgroup to start with an initial value
of "group.name 0000000000 0000000001".
-- 
Wayne Davison          \  /| / /| \/ /| /(_)         davison@drivax.UUCP
                      (_)/ |/ /\| / / |/  \          ...!amdahl!drivax!davison

zeeff@b-tech.ann-arbor.mi.us (Jon Zeeff) (08/15/89)

>When I first tried to build C News with dbz, I got a segmentation fault
>in dbz hash(). I rebuilt with dbm and all was OK.  I am guessing that
>i needed to do a mkhistory before posting to the newly created C News
>with dbz, but have not confirmed this theory.  

You are correct.  Dbz uses a different format for the .pag file so you need
to rebuild it.



-- 
Branch Technology            |  zeeff@b-tech.ann-arbor.mi.us
                             |  Ann Arbor, MI

henry@utzoo.uucp (Henry Spencer) (08/16/89)

In article <24E7016E.1749@drivax.UUCP> davison@drivax.UUCP (Wayne Davison) writes:
>... I'm going
>to send it to the C news folk for their perusal as an optional upact (it
>requires directory functions, so they probably won't want to make it the
>default, like "lowest" isn't the default).

We generally have a fairly low opinion of upact, but so many people would
like it to go faster that I'm willing to consider the idea of a C version.

>Also, it is my firm belief that empty newsgroups should have their min field
>set to one higher than their max field...

Hmmm...  Interesting idea.  Anybody know of anything that would break?
-- 
V7 /bin/mail source: 554 lines.|     Henry Spencer at U of Toronto Zoology
1989 X.400 specs: 2200+ pages. | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

amanda@intercon.uu.net (Amanda Walker) (08/16/89)

In article <1989Aug15.175540.23669@utzoo.uucp>, henry@utzoo.uucp (Henry
Spencer) writes:
> >Also, it is my firm belief that empty newsgroups should have their min field
> >set to one higher than their max field...
> 
> Hmmm...  Interesting idea.  Anybody know of anything that would break?

Not off hand, and I know some code that it would un-break (well, it would
avoid calling a routine to check to see if there really is an article or
not, which would speed things up a bit).

I second the motion!

--
Amanda Walker
InterCon Systems Corporation
--
amanda@intercon.uu.net    |    ...!uunet!intercon!amanda