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...