3.0.2: rlm_sql_null duplicating its statements

Arran Cudbard-Bell a.cudbardb at freeradius.org
Mon Apr 7 13:33:23 CEST 2014


On 7 Apr 2014, at 11:39, Phil Mayers <p.mayers at IMPERIAL.AC.UK> wrote:

> On 07/04/14 11:32, Phil Mayers wrote:
>> On 07/04/14 11:07, Arran Cudbard-Bell wrote:
>>> 20 internet points if you can spot the issue...
>> 
>> Wack wack oops.
>> 
>> Good old fnctl locking! Many thanks to AT&T for gifting us their
>> behaviour...
>> 
>> Maybe it should be switched to flock() given FreeRadius is threaded?
>> IIRC the only external programs (that come with the server) relying on
>> the locking mode are radsqlrelay and radrelay?
> 
> Oh dear. Seems I might have instigated this:
> 
> http://lists.freeradius.org/mailman/private/freeradius-devel/2012-December/007356.html
> 
> ...which triggered:
> 
> https://github.com/FreeRADIUS/freeradius-server/commit/582852042b4aa6810a683383809de234c7bd98a3
> 
> Oops... Sorry!

Ha, all your fault, all your fault :)

flock is sometimes just a wrapper around fcntl so may be just as broken,
at least by moving to something we know is broken in terms of reflecting
lock states internally, it means that we'll account for it in the code.

Anyway, I've just added a mutex around the writes for now.

I spent a few days investigating locking schemes on *NIX a while back and ,
came to the conclusion the only sane way of implementing a sane file locking
scheme is to have a structure in the server core which holds all the currently 
open file handles, and their lock states.

The entries for the files would reflect the locking state presented to other
processes with fcntl.

Entries would should probably persist after whatever needed the lock has 
released it, and expire out after a period of inactivity, else will have
to initialise a mutex on every file access.

Arran Cudbard-Bell <a.cudbardb at freeradius.org>
FreeRADIUS Development Team

FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 881 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freeradius.org/mailman/private/freeradius-users/attachments/20140407/1788815c/attachment.pgp>


More information about the Freeradius-Users mailing list