Bug 815991

Summary: crash in ldap_initialize with multiple threads
Product: Red Hat Enterprise Linux 6 Reporter: Rich Megginson <rmeggins>
Component: 389-ds-baseAssignee: Rich Megginson <rmeggins>
Status: CLOSED ERRATA QA Contact: IDM QE LIST <seceng-idm-qe-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3CC: amsharma, jgalipea, shaines
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.10.2-9.el6 Doc Type: Bug Fix
Doc Text:
Cause: Using replication with many replication agreements. Consequence: Server crashes at startup. Fix: ldap_initialize() is not thread-safe. Use a mutex to make sure only one thread at a time calls it. Result: Server does not crash at startup when using replication with many replication agreements.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 07:15:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Rich Megginson 2012-04-25 01:01:47 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/348

If multiple threads call ldap_initialize at the same time, the program will crash.  We have seen this in the server and in threaded tools such as ldclt on multiple platforms with openldap 2.4.24-2.4.30.  Threaded programs need to have a mutex around calls to ldap_initialize.

This can be reproduced by increasing the number of threads used by ldclt - you should eventually hit the crash - or by configuring the directory server with many (8) replication agreements, and repeatedly stopping and starting the server.  It will eventually crash at startup.

Comment 2 Rich Megginson 2012-04-30 16:27:05 UTC
*** Bug 816037 has been marked as a duplicate of this bug. ***

Comment 3 Amita Sharma 2012-05-07 06:10:26 UTC
I have tested this with stress testing, No core dumps found hence marking VERIFIED.

Comment 4 Rich Megginson 2012-05-24 23:56:41 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: Using replication with many replication agreements.
Consequence: Server crashes at startup.
Fix: ldap_initialize() is not thread-safe.  Use a mutex to make sure only one thread at a time calls it.
Result: Server does not crash at startup when using replication with many replication agreements.

Comment 5 errata-xmlrpc 2012-06-20 07:15:31 UTC
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/RHSA-2012-0813.html