Bug 1552698 - replicated operations should be serialized.
Summary: replicated operations should be serialized.
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: 389-ds-base
Version: 7.7-Alt
Hardware: All
OS: Linux
Target Milestone: rc
: ---
Assignee: mreynolds
QA Contact: RHDS QE
Marc Muehlfeld
Depends On:
Blocks: 1579698
TreeView+ depends on / blocked
Reported: 2018-03-07 14:51 UTC by German Parente
Modified: 2020-09-13 22:10 UTC (History)
10 users (show)

Fixed In Version: 389-ds-base-
Doc Type: Bug Fix
Doc Text:
Thread processing in Directory Server has been serialized On an incoming replicated session, a replicated operation must only be processed when the previous one is completed. In certain situations, the thread which processed the start session operation continued to read and process replicated operations. Consequently, two replicated operations ran in parallel that led to inconsistencies, such as an completed child "add" operation before the parent entry was added. With this update, the thread processing the start session operation no longer processes further operations, even if some are available in the read buffer. As a result, the inconsistencies no longer occur in the mentioned scenario.
Clone Of:
: 1579698 (view as bug list)
Last Closed: 2018-10-30 10:13:31 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Github 389ds 389-ds-base issues 2755 0 None closed replicated operations should be serialized 2020-09-21 22:03:05 UTC
Red Hat Product Errata RHSA-2018:3127 0 None None None 2018-10-30 10:14:55 UTC

Description German Parente 2018-03-07 14:51:13 UTC
Description of problem:

We have observed in a read only consumer that the operations are not completely serialized. This should not be a problem except when we add a parent and inmediately after, a child. If the child is processed before the parent or the parent has not finished to be processed, the child could fail to be added. Or a glue entry created, as we have seen already in a customer case. Logs:

[05/Mar/2018:22:59:36.576352590 -0800] conn=5952102 op=800 ADD dn="ou=parent,ou=Projects,dc=example,dc=com"
[05/Mar/2018:22:59:36.577978254 -0800] conn=5952102 op=801 ADD dn="ou=child,ou=parent,ou=Projects,dc=example,dc=com"
[05/Mar/2018:22:59:36.647458809 -0800] conn=5952102 op=801 RESULT err=0 tag=105 nentries=0 etime=0.073000 csn=5a9e3c58000003e90000
[05/Mar/2018:22:59:36.651239085 -0800] conn=5952102 op=802 ADD dn="ou=child2,ou=parent,ou=Projects,dc=example,dc=com"
[05/Mar/2018:22:59:36.651830303 -0800] conn=5952102 op=800 RESULT err=0 tag=105 nentries=0 etime=0.078000 csn=5a9e3c57000003e90000


[05/Mar/2018:22:59:36.640046623 -0800] - NOTICE - NSMMReplicationPlugin - create_glue_entry - conn=5952102 op=801 csn=5a9e3c58000003e90000: Created glue entry ou=parent,ou=Projects,dc=example,dc=com uniqueid=dbc0c281-210b11e8-bb36c1a8-ea47160f reason missingEntry

Version-Release number of selected component (if applicable): latest RHDS10.

Comment 2 German Parente 2018-03-07 14:52:16 UTC
Just to add, in this case the consumer is a read only replica. So, the glue entry is created in the read only replica and it's extremely complicated to be deleted. We have to re-initialize the consumer each time.

Comment 3 thierry bordaz 2018-03-09 08:26:20 UTC
The creation and handling of the glue entry is not designed for such condition where replicated operation are not serialized.
The focus of that BZ should be failure of serialization.

Comment 23 errata-xmlrpc 2018-10-30 10:13: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.


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