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

Reply via email to