Bug 856269
| Summary: | Race condition leads to crash during BIND reload | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Chris Hudson <chhudson> |
| Component: | bind-dyndb-ldap | Assignee: | Adam Tkac <atkac> |
| Status: | CLOSED ERRATA | QA Contact: | Namita Soman <nsoman> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.3 | CC: | cbuissar, fjayalat, jgalipea, jnansi, mgregg, ovasik, pspacek |
| Target Milestone: | rc | ||
| Target Release: | 6.4 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
Cause: Race condition caused that the plugin could crash named process when received request to reload.
Consequence: Unavailable DNS service.
Fix: The plugin was patched.
Result: Race condition during reload no longer occurs.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-02-21 08:58:26 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Comment 2
Adam Tkac
2012-09-12 14:20:30 UTC
I identified the root cause and I work on the fix right now. Same bug was observed in Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=855939 and https://bugzilla.redhat.com/show_bug.cgi?id=855938 Please add steps to reproduce the bind crash. I added some steps to reproduce to the upstream ticket. There is nothing 100% sure in this case. Package version: bind-dyndb-ldap-1.1.0-0.9.b1.el6_3.1.x86_64 QE will verify sanity only without any steps to reproduce Upstream ticket: https://fedorahosted.org/bind-dyndb-ldap/ticket/101 This is a somewhat difficult bug to verify as the steps to reproduce this bug aren't very solid. I tried the following things to cause this failure, I encountered no problems. [root@zippyvm4 ~]# kinit admin Password for admin: [root@zippyvm4 ~]# /etc/init.d/named restart Stopping named: .[ OK ] Starting named: [ OK ] [root@zippyvm4 ~]# tail /var/log/messages Jan 15 15:44:44 zippyvm4 named[22213]: zone testrelm.com/IN: sending notifies (serial 1358282684) Jan 15 15:44:44 zippyvm4 named[22213]: zone 5.14.10.in-addr.arpa/IN: sending notifies (serial 1358282684) Jan 15 15:44:49 zippyvm4 named[22213]: zone testrelm.com/IN: sending notifies (serial 1358282684) Jan 15 15:44:49 zippyvm4 named[22213]: zone 5.14.10.in-addr.arpa/IN: sending notifies (serial 1358282684) /etc/init.d/named restart & /etc/init.d/nscd restart & [root@zippyvm4 ~]# tail /var/log/messages Jan 15 15:50:17 zippyvm4 named[24939]: zone testrelm.com/IN: sending notifies (serial 1358283017) Jan 15 15:50:17 zippyvm4 named[24939]: zone 5.14.10.in-addr.arpa/IN: sending notifies (serial 1358283017) Jan 15 15:50:17 zippyvm4 logger: 2013-01-15 15:50:17 /usr/bin/rhts-test-runner.sh 1212081 63720 hearbeat... Jan 15 15:50:22 zippyvm4 named[24939]: zone testrelm.com/IN: sending notifies (serial 1358283017) Jan 15 15:50:22 zippyvm4 named[24939]: zone 5.14.10.in-addr.arpa/IN: sending notifies (serial 1358283017) Verified against ipa-server-3.0.0-9.el6.x86_64 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 Public version of bug description follow:
Description of problem:
bind-9.8.2-0.10.rc1.el6_3.2.x86_64 segfault causes IPA replication to fail
Version-Release number of selected component (if applicable):
bind-9.8.2-0.10.rc1.el6_3.2.x86_64
How reproducible:
Random
Steps to Reproduce:
1. Install master and replica IPA environment
2. Watch bind segfault
Actual results:
bind segfaults
Expected results:
bind should not segfault
Additional info:
Core analysis result:
Issue might be coming out of thread 16:
---
(gdb) bt
#0 0x00007fcc5c994b02 in ldap_cache_enabled (cache=0xdededededededede) at cache.c:215
#1 0x00007fcc5c994efe in ldap_cache_getrdatalist (mctx=0x7fcc6ec222d0, cache=0xdededededededede, name=0x7fcc662c6d10,
rdatalist=0x7fcc662c6cf0) at cache.c:177
#2 0x00007fcc5c99b496 in ldapdb_rdatalist_get (mctx=0x7fcc6ec222d0, ldap_inst=0x7fcc5342ef10, name=0x7fcc662c6d10, origin=0x7fcc5d489320,
rdatalist=0x7fcc662c6cf0) at ldap_helper.c:1457
#3 0x00007fcc5c997b41 in find (db=0x7fcc5d489308, name=0x7fcc535f41a0, version=<value optimized out>, type=1, options=0,
now=<value optimized out>, nodep=0x7fcc662c73d8, foundname=0x7fcc535f41f0, rdataset=0x7fcc535f7240, sigrdataset=0x0)
at ldap_driver.c:495
#4 0x00007fcc6d03c57f in query_find (client=<value optimized out>, event=0x0, qtype=1) at query.c:5474
#5 0x00007fcc6d042f6a in ns_query_start (client=0x7fcc4000be60) at query.c:7214
#6 0x00007fcc6d028846 in client_request (task=<value optimized out>, event=<value optimized out>) at client.c:1913
#7 0x00007fcc6ba072f8 in dispatch (uap=0x7fcc6cfb0010) at task.c:1012
#8 run (uap=0x7fcc6cfb0010) at task.c:1157
#9 0x00007fcc6b3bc851 in start_thread (arg=0x7fcc662c9700) at pthread_create.c:301
#10 0x00007fcc6a91f6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
---
---
(gdb) info threads
19 Thread 0x7fcc5febf700 (LWP 29612) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
18 Thread 0x7fcc66cca700 (LWP 29601) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
17 Thread 0x7fcc658c8700 (LWP 29603) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
* 16 Thread 0x7fcc6cfec7c0 (LWP 29596) 0x00007fcc6a86ac54 in do_sigsuspend (set=<value optimized out>)
at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
15 Thread 0x7fcc5f4be700 (LWP 29613) pthread_cond_timedwait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
14 Thread 0x7fcc680cc700 (LWP 29599) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
13 Thread 0x7fcc694ce700 (LWP 29597) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
12 Thread 0x7fcc5eabd700 (LWP 29614) 0x00007fcc6a91fcd3 in epoll_wait () at ../sysdeps/unix/syscall-template.S:82
11 Thread 0x7fcc64ec7700 (LWP 29604) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
10 Thread 0x7fcc68acd700 (LWP 29598) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
9 Thread 0x7fcc626c3700 (LWP 29608) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
8 Thread 0x7fcc61cc2700 (LWP 29609) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
7 Thread 0x7fcc612c1700 (LWP 29610) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
6 Thread 0x7fcc644c6700 (LWP 29605) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
5 Thread 0x7fcc676cb700 (LWP 29600) 0x00007fcc5c994b02 in ldap_cache_enabled (cache=0xdededededededede) at cache.c:215
4 Thread 0x7fcc608c0700 (LWP 29611) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
3 Thread 0x7fcc630c4700 (LWP 29607) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
2 Thread 0x7fcc63ac5700 (LWP 29606) 0x00007fcc6b3c3a2d in recvmsg () at ../sysdeps/unix/syscall-template.S:82
1 Thread 0x7fcc662c9700 (LWP 29602) 0x00007fcc5c994b02 in ldap_cache_enabled (cache=0xdededededededede) at cache.c:215
---
---
(gdb) thread 16
[Switching to thread 16 (Thread 0x7fcc6cfec7c0 (LWP 29596))]#0 0x00007fcc6a86ac54 in do_sigsuspend (set=<value optimized out>)
at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
63 return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
---
---
(gdb) bt
#0 0x00007fcc6a86ac54 in do_sigsuspend (set=<value optimized out>) at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
#1 __sigsuspend (set=<value optimized out>) at ../sysdeps/unix/sysv/linux/sigsuspend.c:78
#2 0x00007fcc6ba0b5a4 in isc__app_ctxrun (ctx0=0x7fcc6bc30880) at app.c:680
#3 0x00007fcc6d033025 in main (argc=<value optimized out>, argv=0x7fff165d4b68) at ./main.c:1085
|