Bug 1061060 - betxn: retro changelog broken after cancelled transaction
Summary: betxn: retro changelog broken after cancelled transaction
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: 389-ds-base
Version: 7.0
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: mreynolds
QA Contact: Viktor Ashirov
Depends On:
TreeView+ depends on / blocked
Reported: 2014-02-04 10:25 UTC by Milan Kubík
Modified: 2015-03-05 09:33 UTC (History)
3 users (show)

Fixed In Version: 389-ds-base-
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2015-03-05 09:33:42 UTC
Target Upstream Version:

Attachments (Terms of Use)
bug reproducer (1.76 KB, application/x-sh)
2014-02-04 10:25 UTC, Milan Kubík
no flags Details
bug reproducer scenario 2 (2.00 KB, application/x-sh)
2014-02-04 13:05 UTC, Milan Kubík
no flags Details

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0416 normal SHIPPED_LIVE Important: 389-ds-base security, bug fix, and enhancement update 2015-03-05 14:26:33 UTC

Description Milan Kubík 2014-02-04 10:25:55 UTC
Created attachment 859026 [details]
bug reproducer

Description of problem:
If the first transaction after enabling the retro changelog plugin fails, the database gets corrupted and any subsequent successful operation is not recorded into changelog.

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

How reproducible:

Steps to Reproduce:
1. Turn on the retro changelog plugin. Restart.
2. Create a transaction that fails. E.g. by auto membership plugin.
3. Add entry in a transaction that succeeds.

Actual results:
ldapsearch -b "cn=changelog" does not show any sub-entries
[04/Feb/2014:11:06:03 +0100] auto-membership-plugin - automember_add_member_value: Unable to add "cn=tuser,ou=people,dc=example,dc=com" as a "member" value to group "cn=testgroup,ou=groups,dc=example,dc=com" (No such object).
[04/Feb/2014:11:06:03 +0100] DSRetroclPlugin - replog: an error occured while adding change number 1, dn = changenumber=1,cn=changelog: Already exists. 

Expected results:
The successful entry should be recorded in changelog

Comment 1 Milan Kubík 2014-02-04 13:05:13 UTC
Scenario 2:
When a transaction fails and there are some changes in the retro changelog,
the changelog skips the change sequence number that the change would have.

Steps to Reproduce:
1. Turn on the retro changelog plugin
2. Add some entry in a successful transaction.
3. Do a modification and cancel the transaction. E.g. by auto membership plugin.
4. Add some other entry in a successful transaction.

Actual result:
The sequence number is skipped in the changelog.
There is no trace of this in error log.

Expected result:
The failed transaction is ignored and next successful change to directory has a sequence number N+1 where N is the sequence number of the last successful transaction/modification.

This is probably caused by the same bug.
Attaching the reproducer for this one (It's almost the same, but little bit rearanged.)

Comment 2 Milan Kubík 2014-02-04 13:05:56 UTC
Created attachment 859133 [details]
bug reproducer scenario 2

Comment 5 Noriko Hosoi 2014-02-20 18:19:42 UTC
Upstream ticket:

Comment 12 errata-xmlrpc 2015-03-05 09:33:42 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.