Unexpected "Exiting normally" 2.1.8?

Bjørn Mork bjorn at mork.no
Thu Nov 26 19:10:47 CET 2009


Alan DeKok <aland at deployingradius.com> writes:

> Bjørn Mork wrote:
>> Yes.  Just to be sure, I've repeated the process and the trace is the
>> same:  Useless:
> ...
>> Which I guess tells us that there is some other path here than through
>> fr_event_loop_exit and radius_signal_self with flag==2?
>
>   For the life of me, I can't see another path through the code.
>
>   Are you sending it period HUPs?

No

>   The only other possibility is some memory over-write.  You should use
> gdb...
>
> $ gdb --args radiusd -f
> (gdb) break fr_event_loop
> (gdb) run
> (gdb) watch el->exit
> (gdb) del 1
> (gdb) cont
> ...
> (gdb) bt
>
>   That should cause it to stop as soon as *anything* stomps on the event
> loop flag that says "stop the event loop"

Will do.

However, I think I found one other possibility.  This code in
fr_event_loop() will exit if the select() fails:

                rcode = select(el->maxfd + 1, &read_fds, NULL, NULL, wake);
                if ((rcode < 0) && (errno != EINTR)) {
                        el->dispatch = 0;
                        return 0;
                }


Might this happen due to a dead home server fd in the &read_fds?



Bjørn




More information about the Freeradius-Users mailing list