FreeRADIUS blocked trying to close SQL connection

Alberto Martínez Setién alberto.martinez at deusto.es
Thu Jul 2 13:52:21 CEST 2020


Hi,

I'm having issues when dealing with an Oracle database.

When running with -Xxx (timestamps are important here) I see the following:

Thu Jul  2 09:31:25 2020 : Debug: (55)     if (Stripped-User-Domain ==
'<REDACTED>')  -> TRUE
Thu Jul  2 09:31:25 2020 : Debug: (55)     if (Stripped-User-Domain ==
'<REDACTED>')  {
Thu Jul  2 09:31:25 2020 : Debug: (55)       update control {
Thu Jul  2 09:31:25 2020 : Debug: (55)         &Tmp-Integer-0 := 2
Thu Jul  2 09:31:25 2020 : Debug: (55)       } # update control = noop
Thu Jul  2 09:31:25 2020 : Debug: (55)     } # if (Stripped-User-Domain ==
'<REDACTED>')  = noop
Thu Jul  2 09:31:25 2020 : Debug: (55)     ... skipping elsif: Preceding
"if" was taken
Thu Jul  2 09:31:25 2020 : Debug: (55)     ... skipping else: Preceding
"if" was taken
Thu Jul  2 09:31:25 2020 : Debug: (55)     update control {
Thu Jul  2 09:31:25 2020 : Info: rlm_sql (sql_oracle_<REDACTED>): Closing
connection (25): Hit idle_timeout, was idle for 66328 seconds
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): 0 of 0
connections in use.  You  may need to increase "spare"
Thu Jul  2 09:47:09 2020 : Info: rlm_sql (sql_oracle_<REDACTED>): Opening
additional connection (26), 1 of 16 pending slots used
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Reserved
connection (26)
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Released
connection (26)
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Reserved
connection (26)
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Released
connection (26)
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Reserved
connection (26)
Thu Jul  2 09:47:09 2020 : Debug: (55)       Executing select query: SELECT
<REDACTED> FROM DUAL
Thu Jul  2 09:47:09 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Released
connection (26)

It follows printing (with the same timestamp) all queued requests
processing (which are by then useless), and finally:

Thu Jul  2 09:47:14 2020 : Debug: (55) Cleaning up request packet ID 151
with timestamp +172989
Thu Jul  2 09:47:15 2020 : Debug: (57) Cleaning up request packet ID 152
with timestamp +173933
Thu Jul  2 09:47:15 2020 : Debug: (59) Cleaning up request packet ID 153
with timestamp +173934
Thu Jul  2 09:47:15 2020 : Debug: (60) Cleaning up request packet ID 154
with timestamp +173934
Thu Jul  2 09:47:15 2020 : Debug: (62) Cleaning up request packet ID 155
with timestamp +173934
Thu Jul  2 09:47:15 2020 : Debug: (64) Cleaning up request packet ID 156
with timestamp +173934
Thu Jul  2 09:47:15 2020 : Debug: (65) Cleaning up request packet ID 157
with timestamp +173934
Thu Jul  2 09:47:15 2020 : Debug: Waking up in 0.3 seconds.
Thu Jul  2 09:47:15 2020 : Debug: (82) Cleaning up request packet ID 96
with timestamp +173934
Thu Jul  2 09:47:15 2020 : Debug: Waking up in 4.8 seconds.
Thu Jul  2 09:47:20 2020 : Debug: (67) Cleaning up request packet ID 158
with timestamp +173934
Thu Jul  2 09:47:20 2020 : Debug: Waking up in 9.6 seconds.
Thu Jul  2 09:47:30 2020 : Debug: (56) Cleaning up request packet ID 75
with timestamp +173933
Thu Jul  2 09:47:30 2020 : Debug: (58) Cleaning up request packet ID 76
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (61) Cleaning up request packet ID 77
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (63) Cleaning up request packet ID 78
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (66) Cleaning up request packet ID 79
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: Waking up in 0.1 seconds.
Thu Jul  2 09:47:30 2020 : Debug: (68) Cleaning up request packet ID 80
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (69) Cleaning up request packet ID 81
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (70) Cleaning up request packet ID 82
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (71) Cleaning up request packet ID 83
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (72) Cleaning up request packet ID 84
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (73) Cleaning up request packet ID 85
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (74) Cleaning up request packet ID 86
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (75) Cleaning up request packet ID 87
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (76) Cleaning up request packet ID 88
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (77) Cleaning up request packet ID 89
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (78) Cleaning up request packet ID 90
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (79) Cleaning up request packet ID 91
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (80) Cleaning up request packet ID 92
with timestamp +173934
Thu Jul  2 09:47:30 2020 : Debug: (81) Cleaning up request packet ID 93
with timestamp +173934

That ~16 minutes delay seems to be consistent during these episodes:

Sun Jun 28 21:38:55 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): Closing
expired connection (145): Hit max_uses limit
Sun Jun 28 21:54:39 2020 : Debug: rlm_sql (sql_oracle_<REDACTED>): 0 of 0
connections in use.  You  may need to increase "spare"

Is it normal to block while closing a SQL connection? Is FreeRADIUS waiting
for something all that time?

Kind regards,
Alberto


More information about the Freeradius-Users mailing list