[Freeipa-devel] [PATCH 0291-0294] Fix locking to prevent crashes and deadlocks

Petr Spacek pspacek at redhat.com
Fri Sep 12 13:09:16 UTC 2014


On 12.9.2014 14:45, Martin Basti wrote:
> On 11/09/14 21:58, Petr Spacek wrote:
>> On 11.9.2014 18:34, Martin Basti wrote:
>>> On 11/09/14 15:57, Martin Basti wrote:
>>>> On 11/09/14 11:59, Petr Spacek wrote:
>>>>> Hello,
>>>>>
>>>>> I was fighting with random crashes for couple of days ... and discovered
>>>>> that run_exclusive_enter()/isc_task_beginexclusive() usage was completely
>>>>> incorrect and didn't actually lock anything.
>>>>>
>>>>> This series of patches reworks internal locking (and related event system)
>>>>> to work around limitations of isc_task_beginexclusive() mechanism.
>>>>>
>>>>> It would be better to get rid of isc_task_beginexclusive() completely but
>>>>> IMHO it is not possible because of BIND's dns_view*() functions have to be
>>>>> guarded with it.
>>>>>
>>>>>
>>>>> Testing is going to be interesting because we are speaking about race
>>>>> conditions.
>>>>>
>>>>> I used ~ 100 DNS zones, each zone had ~ 100 random domain names inside with
>>>>> random A/AAAA/TXT RRs. My LDIF is here:
>>>>> http://people.redhat.com/~pspacek/a/2014/09/11/dns-test.ldif.xz
>>>>>
>>>>> I was able to randomly reproduce various crashes when BIND was running with
>>>>> more threads than usually.
>>>>>
>>>>> You can try to run BIND with this command (as root) and play games with -n
>>>>> parameter:
>>>>> $ export KRB5_KTNAME="/etc/named.keytab"
>>>>> $ named -4 -g -u named -m record -n 10
>>>>>
>>>>> Please test also the case where BIND receives SIGINT during start-up. It is
>>>>> possible to run BIND with commands above and wait for message:
>>>>> 11-Sep-2014 11:54:58.092 running
>>>>>
>>>>> At this point send SIGINT (CTRL+C) to BIND and see what happens. It could
>>>>> crash or deadlock.
>>>>>
>>>>> It is necessary to send the signal before BIND prints this message:
>>>>> 11-Sep-2014 11:55:11.707 zone z1.test/IN: loaded serial 1410429304
>>>>>
>>>>> Let me know if you need any assistance.
>>>>>
>>>> I need your assistance, I haven't been able to reproduce it.
>>>>
>>>> Martin

...

> Functional ACK

Pushed to master:
1d23e27e0198cacdbbb14ac13ff039c33546d9af
09386eb446ac8d9c12110d21f2d4da36c1b792bf
e7d8f6f175eae795c603eee00d06d5799b2d6c39
17a29e20406ad9db0b28fcb6ec4b02394385fe53

-- 
Petr^2 Spacek




More information about the Freeipa-devel mailing list