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.