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

Martin Basti mbasti at redhat.com
Thu Sep 11 13:57:12 UTC 2014


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

-- 
Martin Basti




More information about the Freeipa-devel mailing list