Problem with MySQL connection through load balancer
Dean Goldhill
dgoldhill at netutils.com
Thu Jul 24 00:59:42 CEST 2014
Thanks very much.
That does clear up where I should be looking.
I will update if I find a solution.
Sent from my iPhone
> On 23 Jul 2014, at 17:39, "Phil Mayers" <p.mayers at imperial.ac.uk> wrote:
>
>> On 23/07/14 17:10, Dean Goldhill wrote:
>>
>> I have tried to use the ‘lifetime = 120’ option in the sql.conf
>>
>> Under normal operation, this will cause radius to close and re-establish
>> the SQL connection every 120 seconds, so I hoped that when in this stuck
>> state, it would do the same and re-establish the connection. But does not.
>
> The problem is, FreeRADIUS will be blocked inside the mysql libraries. So "lifetime" probably won't help.
>
>>
>> Is there anything someone can suggest?
>>
>> I don’t have the ability to sync the session table between the 2 load
>> balancers.
>
> The problem isn't FreeRADIUS - it's the mysql libraries. They're not detecting the dead connections.
>
> Does the load balancer have the ability to return a TCP RST or ICMP error when it receives a packet for an unknown session? If so, this will probably trigger the mysql libraries to drop the connection, and FreeRADIUS to reconnect.
>
> Otherwise, you'll need to investigate if MySQL has any form of dead connection detection, and how you can persuade your mysql libraries to do it.
>
> TCP keepalives probably won't help - they're usually too slow for this kind of thing.
>
> Alternatively, something like:
>
> http://dev.mysql.com/downloads/mysql-proxy/
>
> ...could be run locally. We use pgbouncer on postgres for this - it can check the connection is alive before sending a query and reconnect as needed.
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
More information about the Freeradius-Users
mailing list