rlm_perl bug?

Alex Balashov abalashov at evaristesys.com
Fri Aug 8 17:46:21 CEST 2008


Greetings,

I am running into a strange problem with the rlm_perl module.

I am using some Perl middleware to do additional processing on some 
custom vendor accounting attributes and log them to MS-SQL via UnixODBC, 
in addition to using rlm_unixodbc for logging the basic accounting 
attributes.

(As I'm sure you can imagine, I ran into a lot of problems with DB 
handle sharing and thread pools and DB slowness.  But I have managed to 
mostly solve this by using the right combination of threads, maximum 
requests per server, # of Perl clones, etc. to make it work.)

The issue I have is that the RADIUS server will run for 1-2 days under a 
fairly moderate load, and then abruptly crash (apparently) with this:

Thu Aug  7 22:52:00 2008 : rlm_perl: Handling START record.
Thu Aug  7 22:52:00 2008 : rlm_perl: Processing record type 1
Thu Aug  7 22:52:00 2008 : rlm_perl: Handling START record.
Thu Aug  7 22:52:00 2008 : rlm_perl: Processing record type 1
Thu Aug  7 22:52:00 2008 : rlm_perl: Processing record type 1
Thu Aug  7 22:52:00 2008 : rlm_perl: Handling START record.
Thu Aug  7 22:52:00 2008 : rlm_perl: Processing record type 1
Thu Aug  7 22:52:00 2008 : rlm_perl: Handling START record.
Thu Aug  7 22:52:00 2008 : rlm_perl: Processing record type 1
Thu Aug  7 22:52:00 2008 : Error: Could not get @DynaLoader::dl_librefs 
for unloading.

The latter is a Perl error.

Now, DynaLoader::dl_librefs is a symbol that is loaded by the 
interpreter upon boot and is used in every clone invocation, so if the 
problem were simply that the module wasn't there, it would fail 
immediately.  Instead, it happens once in a blue moon.

The RADIUS server then stops and must be manually restarted.

Any idea why?

Thanks much!

-- 
Alex Balashov
Evariste Systems
Web    : http://www.evaristesys.com/
Tel    : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (706) 338-8599



More information about the Freeradius-Users mailing list