[RADIATOR] mysql DBI timed out connections and too many open files (sockets)
Tuure Vartiainen
vartiait at open.com.au
Thu Apr 20 11:34:34 UTC 2017
Hi,
> On 20 Apr 2017, at 13.31, Rauno Tuul <raunz at hot.ee> wrote:
>
> I did a quick test on a random CentOS release 5.11 box with
> Radiator-4.11-1. Installed the rpm, changed only radius.cfg to the
> following:
>
> grep -v "^#" /etc/radiator/radius.cfg
> LogDir /var/log/radius
> DbDir /etc/radiator
> Trace 4
> <Client DEFAULT>
> Secret asd
> DupInterval 0
> </Client>
> <Realm DEFAULT>
> <AuthBy SQL>
> DBSource dbi:mysql:dbname:127.0.0.1:3310
> Timeout 1
> FailureBackoffTime 1
> DBUsername someuser
> DBAuth pointlesspassword
> AuthSelect select 'random' from nowhere
> AuthColumnDef 0, User-Name, check
> NoDefault
> </AuthBy>
> </Realm>
>
> It took me an hour and a half to reproduce the issue on entirely new
> environment to Radiator without any changes on OS side.
> The problem exists with debian and centos, so it's not a distro issue.
>
> Please share the details about the try to reproduce the issue when the
> problem didn't occur. I really would like to know, where's the difference.
>
I was now able to reproduce the problem which is caused by MySQL DB driver
(libmysqlclient18 in Debian) leaving file handles open when a connect operation
is interrupted by SIGALRM signal (generic Timeout in AuthBy SQL).
You can fix it by defining a timeout value for MySQL driver in DBSource,
e.g.
DBSource dbi:mysql:dbname:127.0.0.1:3310;mysql_connect_timeout=<seconds>
where the value is smaller than Timeout value used in AuthBy SQL.
Different MySQL driver options can be found from
https://metacpan.org/pod/DBD::mysql#Class-Methods
BR
--
Tuure Vartiainen <vartiait at open.com.au>
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS,
NetWare etc.
More information about the radiator
mailing list