NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: FreeRADIUS instability
In article <YUCAJHVuBAyGEtpL@gloria>,
Dima Veselov <kab00m%lich.phys.spbu.ru@localhost> wrote:
>Greetings,
>
>I do not know if this is NetBSD-related, but I suffer from FreeRADIUS
>instability on NetBSD for a long time and do not know how to debug this.
>
>Symptoms are: RADIUS server randomly (once a day or once a week) can stop
>answering and this is not connected to the actual load. While in that state
>it can be killed with -9 only, other signals do nothing, rc.d restart script
>just hang.
>
>I have compiled debug version of it and connected gdb:
>
>0x000077280da42b8a in _sys___kevent50 () from /usr/lib/libc.so.12
>(gdb) bt
>#0 0x000077280da42b8a in _sys___kevent50 () from /usr/lib/libc.so.12
>#1 0x000077280e807879 in __kevent50 () from /usr/lib/libpthread.so.1
>#2 0x00007728106270e1 in fr_event_loop (el=0x7728105bcb20)
> at src/lib/event.c:625
>#3 0x00000000004364dd in radius_event_process () at src/main/process.c:6056
>#4 0x00000000004466c3 in main (argc=<optimized out>, argv=<optimized out>)
> at src/main/radiusd.c:641
>
>gdb always show it is stuck in kevent call. radiusd was started with -txx
>meaning no threads were used.
>
>src/lib/event.c:625 says:
>
>rcode = kevent(el->kq, NULL, 0, el->events, FR_EV_MAX_FDS, ts_wake);
>
>It seems kevent call is misused somehow leading to not returning from
>this syscall or syscall is blocked. What I can debug further?
Well, it seems that the signals are blocked and this does not have to
do with kevent (probably FreeRADIUS does it explicitly). You can use
ps -p $pid-of-freeradius -o sigmask,sigcatch,sigignore
to see what signals are handled.
Now, why kevent is stuck, is a different story. You can use
fstat -p $pid-of-freeradius to see what files it has open; perhaps this
will provide a clue.
christos
Home |
Main Index |
Thread Index |
Old Index