talloc & threads in rlm_eap
a.cudbardb at freeradius.org
Fri Jun 20 20:00:01 CEST 2014
On 20 Jun 2014, at 18:50, Arran Cudbard-Bell <a.cudbardb at freeradius.org> wrote:
> On 20 Jun 2014, at 18:39, Phil Mayers <p.mayers at IMPERIAL.AC.UK> wrote:
>> Erm... Oh dear:
>> Does this mean what I think it does?
> Appears so.
OK, well that explains a lot. Basically we can't parent REQUEST structs from any shared
contexts, same for the handlers. That's going to make request chaining using talloc a bit
more difficult, but it's not impossible, and we can still keep the nice autofree
behaviour we just need to use destructors instead.
The rest of the code was written to assume REQUESTS were only used by one thread at a
time so should be ok.
Things like rbtrees, hashes, lists, etc are all synchronised so they're fine.
I'm still not entirely sure why it's not thread safe, perhaps you could ask for an explanation
of what parts of the talloc structures would be munged by two threads accessing them?
Looking at the code the only issues I can see would be for the artificial memory limits you
can set on blocks.
They really need to update their documentation. It's not at all clear what is legal/illegal.
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...
Size: 881 bytes
Desc: Message signed with OpenPGP using GPGMail
More information about the Freeradius-Devel