Issue reading from detail to sql (buffered-sql virtual server)

Nick Freeman nick.f at staff.ihug.co.nz
Thu Jan 31 03:13:21 CET 2008


I've done some more digging as to why the database only gets one
update..

With no detail or detail.work file, freeradius will wake up every 1
second to check for creation - when it gets updated, it puts it into the
database fine. 

However it never deletes or changes the detail.work file - so when I
send a second accounting packet, it will go into the detail file without
a problem (and will be the only packet in the file) but detail.work
seems to be locked with the first packet. No matter how many packets I
send it detail.work always sticks with the first packet, and nothing
ever gets written to the database.

The problem was originally with 2.0.0, I have tried with the latest CVS
with no luck either.

The end of the debug for the virtual server which does the DB writing is
below, nothing ever shows up after the last line:

rlm_sql (sql_logger1): Reserving sql socket id: 13
rlm_sql_postgresql: Status: PGRES_COMMAND_OK
rlm_sql_postgresql: query affected rows = 1
rlm_sql (sql_logger1): Released sql socket id: 13
++[sql_logger1] returns ok
++[ok] returns ok
} # server local_logger
RTT 38420       delay 153680
Finished request 0.
Going to the next request
Waking up in 0.9 seconds.
Cleaning up request 0 ID 37069 with timestamp +20
Ready to process requests.


Any help would be appreciated, thanks!


Nick


-----Original Message-----
From:
freeradius-users-bounces+nick.f=staff.ihug.co.nz at lists.freeradius.org
[mailto:freeradius-users-bounces+nick.f=staff.ihug.co.nz at lists.freeradiu
s.org] On Behalf Of Nick Freeman
Sent: Wednesday, January 30, 2008 10:06 AM
To: freeradius-users at lists.freeradius.org
Subject: Issue reading from detail to sql (buffered-sql virtual server)

Hi,

I'm trying to get my detail file picked up by multiple virtual servers
and relayed to multiple PostgreSQL backends. The detail file writes
fine, however the detail reader will only ever write one entry to the
Postgres DB when it starts.

The config I have for the virtual server in question is below:

server local_logger {
        listen {
                type = detail
                filename = ${radacctdir}/detail
                load_factor = 20
        }
        preacct {
                preprocess
                acct_unique
                files
        }

        accounting {
                sql_logger1
        }
}

I have verified that sql_logger1 isn't the problem, if I put that after
the detail directive in another virtual server data gets written to the
database every time. It looks like my local_logger never picks anything
up (except once on startup). Looking at server starting in debug mode I
see this:

listen {
        type = "detail"
  listen {
        filename = "/var/log/freeradius/radacct/detail"
        load_factor = 20
  }
}

Is this normal? The listen directive is in the same format as the other
virtual servers but this is the only one which has nested listens in the
server startup.

Thanks in advance,

Nick



-
List info/subscribe/unsubscribe? See
http://www.freeradius.org/list/users.html




More information about the Freeradius-Users mailing list