"Jason Lixfeld" <[EMAIL PROTECTED]> wrote:
> Anyone have any ideas here?  I'm still stumped, no matter what I try.

  It's really weird, sorry.
 
> Tried auth'ing from a users file, bypassing SQL, no dice.  I'm compiling
> a uni-processor kernel now to see if it's something with SMP.

  Just to be clear, the problem is:

 - high CPU load
 - it happens in threaded mode and when running '-s'
 - it happens in SMP or in uni-processor mode


  Can you strip down your configuration to load and use the smallest
number of modules possible?  i.e. If you can verify that it happens
with just rlm_files installed, that would help to track down where the
problem is located.


  But the trace you showed was weird:

> > > time(NULL)                              = 1004022581
> > >   Password = "#testuser11"
> > >   Framed-Compression = Van-Jacobson-TCP-IP
> > >   Framed-Compression = Van-Jacobson-TCP-IP
> > >   Framed-Protocol = PPP
> > >   Framed-Compression = Van-Jacobson-TCP-IP
> > >   Framed-Protocol = PPP
> > >   Service-Type = Framed-User
> > >   Framed-Compression = Van-Jacobson-TCP-IP
> > >   Framed-Protocol = PPP
> > >   Service-Type = Framed-User
> > >   Auth-Type = Local
> > >   Framed-Compression = Van-Jacobson-TCP-IP
> > >   Framed-Protocol = PPP
> > >   Service-Type = Framed-User
> > >   Auth-Type = Local
> > >   Framed-MTU = 1500

  You have *multiple* identical attributes added to the request.  That
says there may even be a problem with a list being circularly linked.

> > > radiusd: Starting - reading configuration files ...

  And this should be printed out before it handles a request, not after.

> > > ***** DEAD.  CPU HITS 100% *****

  Can you see which function is using all of the CPU time?


  About all I can do in these situations is to add lots of :

  fprintf(stderr, "HERE %s:%d\n", __FILE__, __LINE__);

 sprinkle these throughout the code, recompile, and do:

(radiusd -Xd /etc/raddb 2>&1) | tee output

  send it one request at a time until it hits 100% CPU, you should
probably see lots of repeating lines.  Hit CTRL-C, and look at the
output file.  You should be able to see where it's looping, or at
least that it got to a certain file/line, and looped after that.

  Alan DeKok.


- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to