9fans archive / 1999 / 01 / 4 / prev next
From: Kenji Arisawa arisawa@ken...
Subject: [9fans] cs trouble on multi-ether
Date: Tue, 5 Jan 99 16:32:18 +0900
Hello David and 9fans!
Help!
I have been annoyed with a cs problem.
My cs sometimes falls into broken state on sending a mail to
other system.
It falls into endless loop at the line in the function reorder():
for(line = x; line->entry == line->line; line = line->line)
The phenomena is peculiar to multi-ether.
I investigated the problem farther and found:
cs receives the data "udp!0.0.0.0!0" when I send a mail, and then
the data grows divergently.
I confirmed the phenomena adding a line to rwrite() in cs.c.
void
rwrite(Mfile *mf)
{
int cnt, n;
char *err, errbuf[ERRLEN];
char *field[3];
int rv;
fprint(2,"cs: rwrite: %s\n", rhp->data); /* inserted */
err = 0;
cnt = rhp->count;
My two ether-cards are connected to the same HUB.
If "rwrite" immediately returns when it receives "udp!0.0.0.0!0",
the divergence is suppressed and (it seems) the system becomes
steady.
I don't know why rwrite receives "udp!0.0.0.0!0" on mutli-ether,
and I am not convinced this is the solution.
Comments are welcome.
P.S.
Today, I found the problem is not fixed yet.
reorder() can fall into endless loop at the line I mentioned above.
Kenji Arisawa
E-mail: arisawa@aic...