Bug 829389 - Plugin deadlocks during new zone load when connections == 1
Plugin deadlocks during new zone load when connections == 1
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: bind-dyndb-ldap (Show other bugs)
6.4
Unspecified Unspecified
high Severity unspecified
: rc
: ---
Assigned To: Adam Tkac
Namita Soman
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-06 11:14 EDT by Dmitri Pal
Modified: 2013-02-21 03:58 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-02-21 03:58:09 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Dmitri Pal 2012-06-06 11:14:23 EDT
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/bind-dyndb-ldap/ticket/66

Plugin deadlocks if new zone was found inside refresh_zones_from_ldap() load and 
/etc/named.conf contains "connections 1". It affects also named start.

refresh_zones_from_ldap() holds one connection and second connection is requested inside ldapdb_rdatalist_get() during new zone load.

**Stack with deadlock**
{{{
pthread_cond_wait@@GLIBC_2.3.2() at /usr/src/debug/glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165 0x7fa359abfae5
semaphore_wait() at /home/pspacek/bind-dyndb-ldap/git/src/semaphore.c:87 0x7fa354d4d806	
ldap_pool_getconnection() at /home/pspacek/bind-dyndb-ldap/git/src/ldap_helper.c:2,577 0x7fa354d4bc4b	
ldapdb_rdatalist_get() at /home/pspacek/bind-dyndb-ldap/git/src/ldap_helper.c:1,471 0x7fa354d48786	
findnode() at /home/pspacek/bind-dyndb-ldap/git/src/ldap_driver.c:421 0x7fa354d41783	
zone_get_from_db() at /usr/src/debug/bind-9.8.2rc2/lib/dns/zone.c:3,905 0x7fa35b76338e	
zone_postload() at /usr/src/debug/bind-9.8.2rc2/lib/dns/zone.c:3,405 0x7fa35b7663cd	
zone_load() at /usr/src/debug/bind-9.8.2rc2/lib/dns/zone.c:1,552 0x7fa35b76c3db	
ldap_parse_zoneentry() at /home/pspacek/bind-dyndb-ldap/git/src/ldap_helper.c:1,067 0x7fa354d473be	
refresh_zones_from_ldap() at /home/pspacek/bind-dyndb-ldap/git/src/ldap_helper.c:1,162 0x7fa354d47797	
manager_create_db_instance() at /home/pspacek/bind-dyndb-ldap/git/src/zone_manager.c:183 0x7fa354d4f861	
dynamic_driver_init() at /home/pspacek/bind-dyndb-ldap/git/src/ldap_driver.c:1,329 0x7fa354d435a1	
dns_dynamic_db_load() at /usr/src/debug/bind-9.8.2rc2/lib/dns/dynamic_db.c:232 0x7fa35b68ed94	
configure_dynamic_db() at /usr/src/debug/bind-9.8.2rc2/bin/named/server.c:1,210 0x7fa35be30bf0	
configure_view() at /usr/src/debug/bind-9.8.2rc2/bin/named/server.c:2,784 0x7fa35be30bf0	
load_configuration() at /usr/src/debug/bind-9.8.2rc2/bin/named/server.c:4,918 0x7fa35be59b9c	
run_server() at /usr/src/debug/bind-9.8.2rc2/bin/named/server.c:5,387 0x7fa35be5b4d5	
dispatch() at /usr/src/debug/bind-9.8.2rc2/lib/isc/task.c:1,012 0x7fa35a105eb8	
run() at /usr/src/debug/bind-9.8.2rc2/lib/isc/task.c:1,157 0x7fa35a105eb8	
start_thread() at /usr/src/debug/glibc-2.14-394-g8f3b1ff/nptl/pthread_create.c:309 0x7fa359abbd90	
clone() at /usr/src/debug/glibc-2.14-394-g8f3b1ff/sysdeps/unix/sysv/linux/x86_64/clone.S:115 0x7fa358ff6f5d	
}}}
Comment 1 RHEL Product and Program Management 2012-07-10 04:50:59 EDT
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.
Comment 2 RHEL Product and Program Management 2012-07-10 19:06:46 EDT
This request was erroneously removed from consideration in Red Hat Enterprise Linux 6.4, which is currently under development.  This request will be evaluated for inclusion in Red Hat Enterprise Linux 6.4.
Comment 4 Jenny Galipeau 2012-07-13 10:17:12 EDT
please add steps to reproduce / verify this bug
Comment 5 Petr Spacek 2012-07-16 03:22:52 EDT
Set "connections 1" and "psearch no" in /etc/named.conf and then restart named. It should hang or log deadlock errors.

Fixed version should load and work properly.
Comment 9 Namita Soman 2012-11-16 14:53:05 EST
Verifed using:
ipa-server-3.0.0-8.el6.x86_64

Edited /etc/named.conf, set "connections 1", "psearch no", "serial_autoincrement no" (because SOA serial number auto-increment feature requires persistent search)

dynamic-db "ipa" {
        library "ldap.so";
        arg "uri ldapi://%2fvar%2frun%2fslapd-TESTRELM-COM.socket";
        arg "base cn=dns, dc=testrelm,dc=com";
        arg "fake_mname ivanova.testrelm.com.";
        arg "auth_method sasl";
        arg "sasl_mech GSSAPI";
        arg "sasl_user DNS/ivanova.testrelm.com";
        arg "zone_refresh 0";
        arg "connections 1";
        arg "psearch no";
        arg "serial_autoincrement no";
};

# service named restart
Stopping named: .[  OK  ]
Starting named: [  OK  ]
Comment 11 errata-xmlrpc 2013-02-21 03:58:09 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0359.html

Note You need to log in before you can comment on or make changes to this bug.