Hi,
We can't help it if *another* module opens && closes the same file. But that's a configuration error. Module A and module B shouldn't be writing to the same file.
Whoa. Why would that be a configuration error? I have multiple instances of rlm_sql_null, all writing different SQL statements, and all writing into the same file for forwarding to the SQL server by radsqlrelay. This has worked for years with rlm_... whatever it was called in v2 that wrote SQL to file. If that's a config error now, I'll have to do some serious re-org of my config.
Thread access to the file descriptor is protected by a mutex. So only one thread at a time will be using the file descriptor.
The hope is that this change avoids all of the POSIX locking issues you've seen. It also re-uses FDs, which should be faster than re-opening the file every time.
Let me know if there are any issues. It passes my tests, but I didn't try hammering it under load.
The 3.0.2 with our local patch runs fine, and I can't spare much time on anything but heartbleed these days. Maybe I'll try 3.0.x later; for now, I'm happy that nothing distracts me. Stefan -- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473 PGP key updated to 4096 Bit RSA - I will encrypt all mails if the recipient's key is known to me http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC0DE6A358A39DC66