Norbert Wegener wrote:
Now it works again with num_sql_socks=30. To make it work, I increased the number of connections on the mysql server via set global max_connections =200; (I have more than one sql-module and each one starts its own connections)
The only other change I see in the SQL module is rlm_sql.c: @@ -555,7 +556,7 @@ /* * Get the list of groups this user is a member of */ - if (sql_get_grouplist(inst, sqlsocket, req, &group_list)) { + if (sql_get_grouplist(inst, sqlsocket, req, &group_list) < 0) { radlog(L_ERR, "rlm_sql (%s): Error getting group membership", inst->config->xlat_name); /* Remove the username we (maybe) added above */ @@ -605,7 +606,7 @@ /* * Get the list of groups this user is a member of */ - if (sql_get_grouplist(inst, sqlsocket, request, &group_list)) { + if (sql_get_grouplist(inst, sqlsocket, request, &group_list) < 0) { radlog(L_ERR, "rlm_sql (%s): Error retrieving group list", inst->config->xlat_name); return -1;
It seems, freeradius comes into trouble, when the number of connections allowed by mysql is exceeded.
That sounds like it's not properly handling errors returned from the SQL libraries.
I did not notice that in former versions of freeradius. Hope this information helps to find the real cause for freeradius going to sleep.
I don't see much in rlm_sql that could cause this problem. I don't see how changes to the server core can affect the SQL module. Alan DeKok.