Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

progier389
Copy link
Contributor

@progier389 progier389 commented Jul 16, 2024

Several issue seen after generating ldif with 2000 users and importing it in a replica:

  1. The entryid attribute in missing in the suffix entry.
  2. Access log shows that the internal search looking for "(parentid>=1)" is not returning all entries but one.
  3. When initializing a replica through a replication agreement some entries are missing (because of 2)
  4. Once 2. get fixed, the bulk import still fails because the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause are not adapted to lmdb (supplier sent the entry faster than bdb and the target replica import them slower.

The fix is about

  1. Ensuring that the operational attribute are properly set when importing the suffix entry.
  2. Avoid using database bulk operation when computing range unless we are sure that bdb is used.
  3. Fixed by 2
  4. Change the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause if agreement is on a lmdb backend.

Issue: #6265

Reviewed by: @vashirov, @droideck (Thanks!)

Copy link
Member

@vashirov vashirov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed only the tests, just 2 minor comments.

dirsrvtests/tests/suites/replication/regression_m2_test.py Outdated Show resolved Hide resolved
dirsrvtests/tests/suites/replication/regression_m2_test.py Outdated Show resolved Hide resolved
@progier389
Copy link
Contributor Author

Fixed the two issues that @vashirov has found.

ldap/servers/slapd/back-ldbm/idl_new.c Outdated Show resolved Hide resolved
ldap/servers/slapd/back-ldbm/idl_new.c Outdated Show resolved Hide resolved
ldap/servers/slapd/back-ldbm/idl_new.c Outdated Show resolved Hide resolved
ldap/servers/plugins/replication/repl5_agmt.c Outdated Show resolved Hide resolved
ldap/servers/slapd/back-ldbm/idl_new.c Outdated Show resolved Hide resolved
ldap/servers/slapd/back-ldbm/idl_new.c Show resolved Hide resolved
@progier389
Copy link
Contributor Author

Fixed @droideck review comments

Copy link
Member

@droideck droideck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@progier389 progier389 merged commit f75b5e2 into 389ds:main Jul 25, 2024
progier389 added a commit that referenced this pull request Jul 25, 2024
* Issue 6265 - lmdb - missing entries in range searches

Several issues seen after generating ldif with 2000 users and importing it in a replica:

1. The entryid attribute in missing in the suffix entry.
2. Access log shows that the internal search looking for "(parentid>=1)" is not returning all entries but one.
3. When initializing a replica through a replication agreement some entries are missing (because of 2)
4. Once 2. get fixed, the bulk import still fails because the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause are not adapted to lmdb (supplier sent the entry faster than bdb and the target replica import them slower.

The fix is about:

1. Ensuring that the operational attribute are properly set when importing the suffix entry.
2. and 3. Avoid using database bulk operation when computing range unless we are sure that bdb is used. (rely instead on the  generic dblayer database iterator - dblayer_cursor_iterate.
4. Change the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause if agreement is on a lmdb backend.

Issue: #6265

Reviewed by: @vashirov, @droideck (Thanks!)

(cherry picked from commit f75b5e2)
progier389 added a commit that referenced this pull request Jul 25, 2024
* Issue 6265 - lmdb - missing entries in range searches

Several issues seen after generating ldif with 2000 users and importing it in a replica:

1. The entryid attribute in missing in the suffix entry.
2. Access log shows that the internal search looking for "(parentid>=1)" is not returning all entries but one.
3. When initializing a replica through a replication agreement some entries are missing (because of 2)
4. Once 2. get fixed, the bulk import still fails because the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause are not adapted to lmdb (supplier sent the entry faster than bdb and the target replica import them slower.

The fix is about:

1. Ensuring that the operational attribute are properly set when importing the suffix entry.
2. and 3. Avoid using database bulk operation when computing range unless we are sure that bdb is used. (rely instead on the  generic dblayer database iterator - dblayer_cursor_iterate.
4. Change the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause if agreement is on a lmdb backend.

Issue: #6265

Reviewed by: @vashirov, @droideck (Thanks!)

(cherry picked from commit f75b5e2)
@progier389 progier389 deleted the i4506 branch May 20, 2025 13:04
abeisemb pushed a commit to abeisemb/389-ds-base that referenced this pull request Jun 24, 2025
* Issue 6265 - lmdb - missing entries in range searches

Several issues seen after generating ldif with 2000 users and importing it in a replica:

1. The entryid attribute in missing in the suffix entry.
2. Access log shows that the internal search looking for "(parentid>=1)" is not returning all entries but one.
3. When initializing a replica through a replication agreement some entries are missing (because of 2)
4. Once 2. get fixed, the bulk import still fails because the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause are not adapted to lmdb (supplier sent the entry faster than bdb and the target replica import them slower.

The fix is about:

1. Ensuring that the operational attribute are properly set when importing the suffix entry.
2. and 3. Avoid using database bulk operation when computing range unless we are sure that bdb is used. (rely instead on the  generic dblayer database iterator - dblayer_cursor_iterate.
4. Change the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause if agreement is on a lmdb backend.

Issue: 389ds#6265

Reviewed by: @vashirov, @droideck (Thanks!)
abeisemb pushed a commit to abeisemb/389-ds-base that referenced this pull request Jun 26, 2025
* Issue 6265 - lmdb - missing entries in range searches

Several issues seen after generating ldif with 2000 users and importing it in a replica:

1. The entryid attribute in missing in the suffix entry.
2. Access log shows that the internal search looking for "(parentid>=1)" is not returning all entries but one.
3. When initializing a replica through a replication agreement some entries are missing (because of 2)
4. Once 2. get fixed, the bulk import still fails because the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause are not adapted to lmdb (supplier sent the entry faster than bdb and the target replica import them slower.

The fix is about:

1. Ensuring that the operational attribute are properly set when importing the suffix entry.
2. and 3. Avoid using database bulk operation when computing range unless we are sure that bdb is used. (rely instead on the  generic dblayer database iterator - dblayer_cursor_iterate.
4. Change the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause if agreement is on a lmdb backend.

Issue: 389ds#6265

Reviewed by: @vashirov, @droideck (Thanks!)
abeisemb pushed a commit to abeisemb/389-ds-base that referenced this pull request Jun 26, 2025
* Issue 6265 - lmdb - missing entries in range searches

Several issues seen after generating ldif with 2000 users and importing it in a replica:

1. The entryid attribute in missing in the suffix entry.
2. Access log shows that the internal search looking for "(parentid>=1)" is not returning all entries but one.
3. When initializing a replica through a replication agreement some entries are missing (because of 2)
4. Once 2. get fixed, the bulk import still fails because the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause are not adapted to lmdb (supplier sent the entry faster than bdb and the target replica import them slower.

The fix is about:

1. Ensuring that the operational attribute are properly set when importing the suffix entry.
2. and 3. Avoid using database bulk operation when computing range unless we are sure that bdb is used. (rely instead on the  generic dblayer database iterator - dblayer_cursor_iterate.
4. Change the default values for nsds5ReplicaFlowControlWindow and nsds5ReplicaFlowControlPause if agreement is on a lmdb backend.

Issue: 389ds#6265

Reviewed by: @vashirov, @droideck (Thanks!)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

with lmdb a range search may fail to return some entries leading to truncated bulk import

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.