rlm_sql_null: No connections available and at max connection limit
Hi guys, We use rlm_sql_null for accounting and auth logs which allow us to respond quickly and defer inserts from regional nodes when db or link is down. Config is simple: accounting { ... sql_accounting } sql sql_accounting { driver = "rlm_sql_null" accounting { logfile = "${sql_write_dir}/accounting.sql" query = "INSERT INTO accounting ..." } } We get around 10-15 auth requests per sec and I don't see any errors for post-auth log. But we get around 180-200 acct requests per sec and I'm getting those errors for rlm_sql_null module: rlm_sql (sql_accounting): Cannot open new connection, already at max rlm_sql (sql_accounting): No connections available and at max connection limit README.rst says we can leave the pool definition or delete it for _null module. Wondering if there are some tweaks for the null module or it's a bug as there should be no max connection limit on this module ? Also noticed that null module tries to connect to radius table but no db_name is configured: rlm_sql (sql_accounting): Driver rlm_sql_null (module rlm_sql_null) loaded and linked rlm_sql (sql_accounting): Attempting to connect to database "radius" Why is it trying to connect to something if it should just append to logfile ? Thanks, Artis
On Jun 3, 2021, at 4:17 PM, Artis Caune <artis.caune@gmail.com> wrote:
We use rlm_sql_null for accounting and auth logs which allow us to respond quickly and defer inserts from regional nodes when db or link is down.
Config is simple:
accounting { ... sql_accounting }
sql sql_accounting { driver = "rlm_sql_null" accounting { logfile = "${sql_write_dir}/accounting.sql" query = "INSERT INTO accounting ..." } }
We get around 10-15 auth requests per sec and I don't see any errors for post-auth log. But we get around 180-200 acct requests per sec and I'm getting those errors for rlm_sql_null module: rlm_sql (sql_accounting): Cannot open new connection, already at max rlm_sql (sql_accounting): No connections available and at max connection limit
Yeah, the main SQL module doesn't know that the "rlm_sql_null" driver doesn't connect to a real database. It's the one downside of the abstractions we use.
README.rst says we can leave the pool definition or delete it for _null module.
Wondering if there are some tweaks for the null module or it's a bug as there should be no max connection limit on this module ?
Just configure a "pool" section, and set the maximum connection limit to a high value. It will be fine.
Also noticed that null module tries to connect to radius table but no db_name is configured: rlm_sql (sql_accounting): Driver rlm_sql_null (module rlm_sql_null) loaded and linked rlm_sql (sql_accounting): Attempting to connect to database "radius"
Why is it trying to connect to something if it should just append to logfile ?
That's just an information message. It doesn't mean anything for the rlm_sql_null driver. It can be ignored. It's another side effect of the main SQL module not knowing that there's any difference between PostgreSQL, MySQL, Oracle, or NULL. Alan DeKok.
participants (2)
-
Alan DeKok -
Artis Caune