Bug 1080185

Summary: Creating a glue fails if one above level is a conflict or missing
Product: Red Hat Enterprise Linux 6 Reporter: Noriko Hosoi <nhosoi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Sankar Ramalingam <sramling>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4CC: jadelman, jgalipea, mkubik, nkinder, rmeggins
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.15-38.el6 Doc Type: Bug Fix
Doc Text:
Cause: tombstone resurrection did not consider the case its parent entry had become a conflict entry. Also, resurrected tombstone treatment was missing in the entryrdn index. Consequence: The parent-child relationship was confused when a tombstone was resurrected. Fix: Even if the parent of a tombstone entry has become a conflict entry, the parent-child relationship is correctly managed. Result: The DIT structure is properly maintained under the stress.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-10-14 07:54:40 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:
Attachments:
Description Flags
test script & data none

Description Noriko Hosoi 2014-03-24 21:00:52 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/47750

Example:
dn: ou=test,ou=projects,nsuniqueid=bd44c40a-afc711e3-9b7bd5e4-7027b69c
 +o=org246,ou=ou0,dc=example,dc=com

Trying to resurrect ou=test and adding a glue entry ou=projects.  Then, the add fails due to its parent not found since o=org246 is a conflict.

210 create_glue_entry ( Slapi_PBlock *pb, char *sessionid, Slapi_DN *dn, const char *uniqueid, CSN *opcsn )
239             op_result= do_create_glue_entry(rdn, superiordn, uniqueid, "missingEntry", opcsn);
254                 case LDAP_NO_SUCH_OBJECT:
255                     /* The parent is missing */
256                     {
257                     /* JCMREPL - Create the parent ... recursion?... but what's the uniqueid? */
258                     PR_ASSERT(0); /* JCMREPL */ <== This assertion fails.
259                     }

Comment 1 Noriko Hosoi 2014-05-12 23:20:27 UTC
Created attachment 894899 [details]
test script & data

How to run the test script:
1) setup 3 way mmr (M0 <--> M1 <--> M2 <--> M0)
2) untar the attached tar file reproducer.tar
   reproducer/
   reproducer/testou.X
   reproducer/reproducer.sh
   reproducer/test.ldif
3) update reproducer.sh to adjust the servers
   port0=389
   port1=390
   port2=391
   DMPW="Secret123"
   suffix="dc=example,dc=com"
4) ldapmodify -x ... -af test.ldif
5) sh -x reproducer.sh

If you see a log "Can't resurrect tombstone to glue reason 'deletedEntryHasChildren', Try with conflict dn o=bees##,ou=organizations,<suffix>, error=68" in the error log and the test goes to the end (loop count 200), the bug is verified.

Comment 3 Jesse Adelman, Collab.Net 2014-07-28 23:40:32 UTC
Any chance of this getting out of QA and into a release for 5.X and 6.X? :) Thanks.

Comment 4 Jesse Adelman, Collab.Net 2014-07-28 23:43:44 UTC
P.S. We're also looking forward to https://bugzilla.redhat.com/show_bug.cgi?id=1097002 at the same time. :)

Comment 5 Rich Megginson 2014-08-04 16:12:00 UTC
(In reply to Jesse Adelman, Collab.Net from comment #3)
> Any chance of this getting out of QA and into a release for 5.X and 6.X? :)
> Thanks.

Can you wait until RHEL 6.6 is released?  Should be another couple of months.  That's the only way to get a "supported" fix for this issue.

For RHEL 5, we will need to do an EPEL5 release from the latest 1.2.11 branch.

Comment 7 errata-xmlrpc 2014-10-14 07:54:40 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/RHBA-2014-1385.html