Hi, I have setup a new freeradius server and today it died for the first time. Some info regarding the install: Version: radiusd -v radiusd: FreeRADIUS Version 2.1.12, for host x86_64-redhat-linux-gnu, built on Oct 3 2012 at 01:22:51 Copyright (C) 1999-2011 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License. For more information about these matters, see the file named COPYRIGHT. OS CentOS release 6.4 (Final) Some notes on my setup: Everything runs through mod_perl. So my perl script handles the DB connection, add and removes records from the DB and so forth. Its called for each and every request. I checked the logs when the server was down and the errors I saw were Sat Jan 11 16:26:08 2014 : Info: WARNING: Child is hung for request 67332 in component <core> module <queue>. Sat Jan 11 16:26:12 2014 : Info: WARNING: Child is hung for request 67329 in component <core> module <queue>. Sat Jan 11 16:26:13 2014 : Info: WARNING: Child is hung for request 67328 in component <core> module <queue>. Sat Jan 11 16:26:18 2014 : Info: WARNING: Child is hung for request 67330 in component <core> module <queue>. Sat Jan 11 16:26:18 2014 : Info: WARNING: Child is hung for request 67333 in component <core> module <queue>. Sat Jan 11 16:26:19 2014 : Info: WARNING: Child is hung for request 67331 in component <core> module <queue>. Sat Jan 11 16:26:20 2014 : Info: WARNING: Child is hung for request 67332 in component <core> module <queue>. Sat Jan 11 16:26:21 2014 : Info: WARNING: Child is hung for request 67331 in component <core> module <queue>. Sat Jan 11 16:26:23 2014 : Info: WARNING: Child is hung for request 67331 in component <core> module <queue>. and those went on for HOURS. when i reached the top of those messages ( I assume just before the server failed I saw these logs come through) Sat Jan 11 13:19:00 2014 : Error: Received conflicting packet from client private-network-1 port 39484 - ID: 89 due to unfinished request 63062. Giving up on old request. Sat Jan 11 13:19:01 2014 : Error: Received conflicting packet from client private-network-1 port 53062 - ID: 244 due to unfinished request 63063. Giving up on old request. Sat Jan 11 13:19:04 2 Is there anything more I can do to troubleshoot and get more logs (exept run radiusd -X with nohup or something). Could it be my script causing this, or my DB or freeradius? Thanks for any advice
Tyller D wrote:
Some info regarding the install:
Version: radiusd -v radiusd: FreeRADIUS Version 2.1.12, for host x86_64-redhat-linux-gnu,
Well, upgrading may help.
Some notes on my setup: Everything runs through mod_perl. So my perl script handles the DB connection, add and removes records from the DB and so forth. Its called for each and every request.
That's really not a good idea. It slows the server down a *lot*.
I checked the logs when the server was down and the errors I saw were
Sat Jan 11 16:26:08 2014 : Info: WARNING: Child is hung for request 67332 in component <core> module <queue>.
That's likely related to the Perl script. If that's slow, there can be a whole chain of cascading failures.
Is there anything more I can do to troubleshoot and get more logs (exept run radiusd -X with nohup or something). Could it be my script causing this, or my DB or freeradius?
It's likely the script. But upgrading to 2.2.3 wouldn't hurt either. Alan DeKok.
Hi Alan, thanks for the response. I thought that running through perl would be better as the interpreter was loaded into memory. So what would be better, a Perl script or using unlang? Basically the script does a select query on the DB, then all the logic and does some inserts into the DB. What do you recommend perl or unlang? Thanks On Sat, Jan 11, 2014 at 7:24 PM, Alan DeKok <aland@deployingradius.com>wrote:
Tyller D wrote:
Some info regarding the install:
Version: radiusd -v radiusd: FreeRADIUS Version 2.1.12, for host x86_64-redhat-linux-gnu,
Well, upgrading may help.
Some notes on my setup: Everything runs through mod_perl. So my perl script handles the DB connection, add and removes records from the DB and so forth. Its called for each and every request.
That's really not a good idea. It slows the server down a *lot*.
I checked the logs when the server was down and the errors I saw were
Sat Jan 11 16:26:08 2014 : Info: WARNING: Child is hung for request 67332 in component <core> module <queue>.
That's likely related to the Perl script. If that's slow, there can be a whole chain of cascading failures.
Is there anything more I can do to troubleshoot and get more logs (exept run radiusd -X with nohup or something). Could it be my script causing this, or my DB or freeradius?
It's likely the script. But upgrading to 2.2.3 wouldn't hurt either.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Tyller D wrote:
I thought that running through perl would be better as the interpreter was loaded into memory.
It's still a generic interpretor.
So what would be better, a Perl script or using unlang?
Neither. Use the SQL module. It's intended to be fast.
Basically the script does a select query on the DB, then all the logic and does some inserts into the DB.
Use SQL + unlang. Alan DeKok.
participants (2)
-
Alan DeKok -
Tyller D