Hi,
I have a problem in engine_poll() on a netbsd 1.5.2 using ircu .11 up to
date from cvs, i only did a change in os_bsd.c before compile (or it's fail)
I need to change #define _XOPEN_SOURCE by //#define _XOPEN_SOURCE
(but this don't affect my problem i think)
Sometime my ircd (want to) load too 100%
I can quite easily reproduce this by:
- Link to a leaf
- Link to a hub
- Squit the leaf
there is might other possibility, in general it's append when my ircd act as
hub and lost a leaf (might when i lost a hub, but i rarely lost hub, so i
not sure if it's append when i lost hubs)
I have compiled it with -pg to see what append:
24.49 663.80 663.80 232221229 0.00 0.00 getsockopt
20.31 1214.21 550.41 23619357 0.00 0.00 poll
19.49 1742.38 528.17 mcount
17.87 2226.65 484.27 23622822 0.00 0.00 gettimeofday
16.00 2660.32 433.67 1 433.67 2182.38 engine_loop
1.10 2690.12 29.80 23619357 0.00 0.00 timer_run
0.50 2703.61 13.49 23619359 0.00 0.00 time
I have also run ircd in debug mode (with -x 9)
[2002-6-12 2:17:24] DEBUG [DEBUG]: Client Parsing: SQUIT irc.eu*
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending [0x0818d400] to irc.eu...
[2002-6-12 2:17:24] DEBUG [DEBUG]: Adding buffer 0x0818d400 [BkAAA SQ
hub5.eu... 0 :Jeb] length 36 to normal queue
[2002-6-12 2:17:24] DEBUG [DEBUG]: Copying old buffer 0x0818d400 [BkAAA SQ
hub5.eu... 0 :Jeb] length 36 into new buffer 0x08193a80 size 64
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending [0x0818d400] to Jeb
[2002-6-12 2:17:24] DEBUG [DEBUG]: Adding buffer 0x0818d400 [:hub5.eu...
NOTICE * :*** Notice -- Local SQUIT by Jeb [hub5.eu...]:] length 86 to
normal queue
[2002-6-12 2:17:24] DEBUG [DEBUG]: Copying old buffer 0x0818d400
[:hub5.eu... NOTICE * :*** Notice -- Local SQUIT by Jeb [hub5.eu...]:]
length 86 into new buffer 0x0818bc00 size 128
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending [0x0818d400] to Jeb
[2002-6-12 2:17:24] DEBUG [DEBUG]: Adding buffer 0x0818d400 [:hub5.eu...
NOTICE * :*** Notice -- Net break: hub5.eu... irc.eu... (Jeb)] length 99 to
normal queue
[2002-6-12 2:17:24] DEBUG [DEBUG]: Copying old buffer 0x0818d400
[:hub5.eu... NOTICE * :*** Notice -- Net break: hub5.eu... irc.eu... (Jeb)]
length 99 into new buffer 0x0818bf00 size 128
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending [0x0818d400] to hub0.eu...
[2002-6-12 2:17:24] DEBUG [DEBUG]: Adding buffer 0x0818d400 [BkAAA SQ
irc.eu... 1023841021 :Jeb] length 44 to normal queue
[2002-6-12 2:17:24] DEBUG [DEBUG]: Copying old buffer 0x0818d400 [BkAAA SQ
irc.eu... 1023841021 :Jeb] length 44 into new buffer 0x08193a80 size 64
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending [0x0818d400] to Jeb
[2002-6-12 2:17:24] DEBUG [DEBUG]: Adding buffer 0x0818d400 [:user!host@host
QUIT :*.net *.split] length 76 to normal queue
[2002-6-12 2:17:24] DEBUG [DEBUG]: Copying old buffer 0x0818d400
[:nick!user@host QUIT :*.net *.split] length 76 into new buffer 0x08196a00
size 128
[2002-6-12 2:17:24] DEBUG [DEBUG]: RemoveYXXClient: AAk(36)
[2002-6-12 2:17:24] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841045)
54000
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending queued data to Jeb
[2002-6-12 2:17:24] DEBUG [DEBUG]: Sending queued data to hub0.eu....
[2002-6-12 2:17:24] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841045)
54000
[2002-6-12 2:17:24] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841045)
54000
[2002-6-12 2:17:24] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841045)
54000
[2002-6-12 2:17:24] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841045)
54000
....
[2002-6-12 2:17:25] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841046)
53000
....
[2002-6-12 2:17:26] DEBUG [DEBUG]: poll: delay: 1023841099 (1023841047)
52000
...
At the end of engine_poll, there is timer_run() and:
timer_run(void)
{
struct Timer* ptr;
while ((ptr = evInfo.gens.g_timer)) {
if (CurrentTime < ptr->t_expire)
break; /* processed all pending timers */
So i guess that CurrentTime < ptr->t_expire is true and should not...
--
Jean-Edouard BABIN
Mail: [EMAIL PROTECTED]
Web : www.Jeb.com.fr
IRC : Jeb @ Undernet