BB Unix Network Monitor - Message
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: {bb} problem monitoring kpop after upgrade, is buggy bbnet
}> There has been changes to the timeout handling but they both use the 3, 5,
}> 12 approach, the difference between the versions is that 1.2b has a bug
}> in handling timeouts when not receiving any data. :)
}>
}> Sean/Rob, it looks like Tracy found a bug in bbnet, this patch will fix
}> the problem:
}I'm not sure but I'm open to all comments...
}I've look at the previous messages to this thread and something caught
}my eye:
}
}I'm not sure if that's it:
}# time /local2/bb-1.09b/bin/bbnet mailhub:1109
}0.013u 0.016s 0:03.14 0.6% 0+1k 0+0io 0pf+0w
} ^^^^^^^
}# time /local2/bb-1.2b/bin/bbnet mailhub:1109
}bbnet: TIMEOUT mailhub PORT 1109...
}0.003u 0.018s 0:20.04 0.0% 0+2k 0+0io 0pf+0w
} ^^^^^^^
}Is this elapsed ?
Yes, sorry, I should have included the format time uses for my setup.
}If so, then it makes some sense,
}1.09b would only go thru a 3seconds delay and quit while the 1.2b
}would go thru the 3, 5 and 12 seconds delay for 20 seconds.
}Now why would the 1.09b take only one 3 second delay ? hummmm, let's
}see:
}
}in bbnet.c on 1.09b, the variable cnt is defined in timeout() as
}
}static int cnt;
}
}Maybe it wasn't initialized with 0 upon execution of the code. So if
}cnt >
}2 at program startup (compiler SHOULD have initialized to 0 but there
}might also be a bug in the compiler ...) then in the 1.09b version the
}timeout() function would only be called once:
}
}1.09b bbnet.c
}
}timeout()
}{
} static int cnt;
} ^^^^^^^^^^^^^^^ cnt should be 0 at startup
}
} cnt++;
} ^^^^^^ if cnt is initialized with > 2
} if (cnt == 1) timer = 5;
} else if(cnt == 2) timer = 12;
} else {
} ^^^^^^^^^^^ then it would jump to this else immediately and
} ^^^^^^^^^^^ report an elapsed time of 3 seconds... cause
} ^^^^^^^^^^^ timer 5 & 12 were skipped
} fprintf(stderr, "bbnet: TIMEOUT %s PORT %d...\n",
}machine, port);
} exit(3);
} }
} longjmp(env,1);
}}
}
}> 245c245
}> < if (setjmp(env) != 0) {
}> ---
}> > if (setjmp(env) != 0) { /* RETURN OK BUT INCLUDE MESSAGE */
}> 247,248c247,248
}> < debug("SETTING TIMER TO %d\n", timer);
}> < if (timer == 99) return(99);
}> ---
}> > printf("*** bbnet: Stop waiting for server data\n");
}> > return(0); /* PRETEND IT'S OK */
}
}That's my take on it.
}
}I think the bug was in 1.09b returning too quickly and that
}version 1.2b behaves correctly but I could be wrong ;)
}
}Tracy, in the 1.09b code can you change
}
}static int cnt;
}
} to
}
}static int cnt = 0;
}
}recompile and try the bbnet test again, let us know the result
# time ./bbnet mailhub:1109
0.003u 0.016s 0:03.06 0.3% 0+1k 0+0io 0pf+0w
}You could even have a printf("\ncnt = %d\n",cnt); as the
}first statement in the timeout function just to make sure
}what the value of cnt is... maybe do it before the = 0 change
}to confirm the bug on 1.09b (well, sometimes printf will mask
}bugs also so I wouldn't rely on it...)
Nothing extra prints out:
# time ./bbnet mailhub:1109
0.003u 0.014s 0:03.06 0.3% 0+1k 0+0io 0pf+0w
Tracy J. Di Marco White
Project Vincent Systems Manager
gendalia@iastate.edu
-
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=
To unsubscribe from this list, or to subscribe to the bb-digest list
send e-mail to mailto:majordomo@bb4.com with unsubscribe bb -and/or-
subscribe bb-digest in the BODY of the message.
Home |
Main Index |
Thread Index