Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Referral mode is not working #5701

Closed
droideck opened this issue Mar 16, 2023 · 2 comments · Fixed by #5708
Closed

Referral mode is not working #5701

droideck opened this issue Mar 16, 2023 · 2 comments · Fixed by #5708
Assignees
Labels
needs triage The issue will be triaged during scrum

Comments

@droideck
Copy link
Member

Description of problem:

Referral mode not working and failing with error: ERROR: Error: 103 - 10 - 53 - Server is unwilling to perform - [] -
need to set nsslapd-referral

How reproducible:
Every time

Steps to Reproduce:

  1. Create two instances

  2. Stop the instance on the host you want to redirect:

# systemctl stop dirsrv@instance_name
  1. Run ns-slapd in referral mode:
# ns-slapd refer -D /etc/dirsrv/slapd-instance_name [-p port] -r referral_url

4.Even though nsslapd-referral is set:

cn=data_on_1,cn=ldbm database,cn=plugins,cn=config
...
nsslapd-referral: ldap://localhost:38902/ou=people,dc=example,dc=com

Updating the state doesn't work:

ou=data_on_instance1,dc=example,dc=com
...
ldap.UNWILLING_TO_PERFORM: {'msgtype': 103, 'msgid': 10, 'result': 53,
'desc': 'Server is unwilling to perform', 'ctrls': [], 'info': 'need
to set
 nsslapd-referral before moving to referral state\n'}
@droideck droideck added the needs triage The issue will be triaged during scrum label Mar 16, 2023
@droideck droideck self-assigned this Mar 16, 2023
@droideck
Copy link
Member Author

droideck commented Mar 17, 2023

Before the issue is fixed/can be tested (and it's possible that it's already fixed), we need to fix another bug around the area:

DEBUG: 'BackendSuffixView' object has no attribute 'set_state'
Traceback (most recent call last):
  File "/usr/sbin/dsconf", line 139, in <module>
    result = args.func(inst, None, log, args)
  File "/usr/local/lib/python3.9/site-packages/lib389/cli_conf/backend.py", line 510, in backend_set
    bev.set_state(args.state)
  File "/usr/local/lib/python3.9/site-packages/lib389/_mapped_object.py", line 244, in __getattr__
    raise AttributeError("'%s' object has no attribute '%s'" % (self.__class__.__name__, name))
AttributeError: 'BackendSuffixView' object has no attribute 'set_state'
ERROR: Error: 'BackendSuffixView' object has no attribute 'set_state'

It happens because we've added 'set_state' in one commit, but then we've started to use another object in CLI tools BackendSuffixView which doesn't have the 'set_state':
9d0c9b8
83b3fe9

I'll check it tomorrow/next week.

droideck added a commit to droideck/389-ds-base that referenced this issue Mar 24, 2023
Bug Description: Referral mode not working and failing with error: ERROR: Error:
103 - 10 - 53 - Server is unwilling to perform - [] - need to set nsslapd-referral
It happens because in CLI, we set nsslapd-referral to the backend when
it should be set to "cn=mapping tree".

Fix description: Set the attribute to the correct object.
Add get_state and set_state custom functions to BackendSuffixView.
Fix minor typos.

Fixes: 389ds#5701

Reviewed by: ?
@droideck
Copy link
Member Author

droideck added a commit that referenced this issue Mar 31, 2023
Bug Description: Referral mode not working and failing with error: ERROR: Error:
103 - 10 - 53 - Server is unwilling to perform - [] - need to set nsslapd-referral
It happens because in CLI, we set nsslapd-referral to the backend when
it should be set to "cn=mapping tree".

Fix description: Set the attribute to the correct object.
Add get_state and set_state custom functions to BackendSuffixView.
Fix minor typos.

Fixes: #5701

Reviewed by: @tbordaz, @mreynolds389, @progier389 (Thanks!)
droideck added a commit to droideck/389-ds-base that referenced this issue Jun 23, 2023
Description: Refactor basic referral state test to be correct
according to the current lib389 implementation.
Add more tests to the clu/dsconf_test.py suite, which covers
CLI referral state logic.

Related: 389ds#5701

Reviewed by: ?
droideck added a commit to droideck/389-ds-base that referenced this issue Jul 4, 2023
Description: Refactor basic referral state test to be correct
according to the current lib389 implementation.
Add more tests to the clu/dsconf_test.py suite, which covers
CLI referral state logic.

Related: 389ds#5701

Reviewed by: ?
droideck added a commit that referenced this issue Jul 5, 2023
Description: Refactor basic referral state test to be correct
according to the current lib389 implementation.
Add more tests to the clu/dsconf_test.py suite, which covers
CLI referral state logic.

Related: #5701

Reviewed by: @progier389 (Thanks!)
designet-inc-oss pushed a commit to designet-inc-oss/389-ds-base that referenced this issue Jul 11, 2023
Description: Refactor basic referral state test to be correct
according to the current lib389 implementation.
Add more tests to the clu/dsconf_test.py suite, which covers
CLI referral state logic.

Related: 389ds#5701

Reviewed by: @progier389 (Thanks!)
designet-inc-oss added a commit to designet-inc-oss/389-ds-base that referenced this issue Jul 11, 2023
…lugin

Bug Description:

I used Cockpit Plugin to localize Cockpit 389 ds plugin.

Fix Description:

To enable localization for 389ds, we obtained CockpitPoPlugin from pkg/lib/cockpit-po-plugin.js in the old Cockpit, called it in webpack.config.js, and modified the files so that 389ds can handle language files (po files).

relates: 389ds#5764

Author: designet-inc-oss

Reviewed by: mreynolds389

Issue 5701 - CI - Add more tests for referral mode fix (389ds#5810)

Description: Refactor basic referral state test to be correct
according to the current lib389 implementation.
Add more tests to the clu/dsconf_test.py suite, which covers
CLI referral state logic.

Related: 389ds#5701

Reviewed by: @progier389 (Thanks!)

parent f2c1e44
author designet-inc-oss <github-oss@designet.co.jp> 1683789403 +0900
committer designet-inc-oss <github-oss@designet.co.jp> 1689037284 +0900

Issue 5755 - Massive memory leaking on update operations (389ds#5824)

Description: Correction of idl memory leak fix

Fix description: Initial mem leak fix (389ds#5803) causing a SEGV during
basic search.

The inital memory leak occurs during idl_set manipulation when a filter
type LDAP_FILTER_AND, filter choice LDAP_FILTER_NOT and an empty set is
used. The complelement idl is stashed for a later intersection, but is
never freed when an empty set is used during set intersection.

The previous fix has been removed and the inital leak corrected.

relates: 389ds#5803

Reviewed by: @tbordaz @progier389  (Thank you)

Issue 389ds#5822 - Allow empty export path for db2ldif

Bug Description:

Until recently, db2ldif did not require an export path to be specified
and would use a specified default location to create a timestamped file.

A recent commit introduced a check to ensure the targeted export file's
parent actually exists. This check is fine if a target filename is
provided, but it fails when no filename is provided; a use case that
was supported before.

Fix Description:

The check should only be done iff a filename for the export is provided.

relates: 389ds#5822

Author: multipleofzero

Reviewed by: @droideck

Issue 5825 - healthcheck - password storage scheme warning needs more info

Description:  Add the current/insecure scheme to the report, and state which
              config setting is insecure.

relates: 389ds#5825

Reviewed by: jchapman & spichugi(Thanks!!)

Issue 5793 - UI - Fix minor crashes (389ds#5827)

Description: After a massive move from webpack to esbuild bundler rework,
fix two minor crashes which happened because of minor copy-paste errors.

Related: 389ds#5793

Reviewed by: @mreynolds389 (Thanks!)

Issue 5793 - UI - fix suffix selection in export modal

Description: Fix suffix selection which was not working, and fix crash
             related to the move from webpack to esbuild (reload function
             name)

relates: 389ds#5793

Reviewed by: spichugi(Thanks!)

Issue 4719 - CI - Add dsconf add a PTA URL test

Description: This test checks that you are able to add a PTA URL through dsconf. Test tries to add new PTA URL and then check logs for message: "Successfully added URL".

Relates: 389ds#4719

Reviewed by: @mreynolds389 @droideck (Thanks!)

Issue 5752 - RFE - Provide a history for LastLoginTime (389ds#5807)

Bug Description: For the lastloginhistory feature the user
can set the number of login histories that are saved by
modifing the lastloginhistorysize attribute. The CLI currently
allows setting this attribute value to 0 or a non positive int.

Fix Description: Add support for a lastloginhistorysize of 0 which
would disable the feature. Add CLI support for restricting non
positive int values.

relates: 389ds#5752

Reviewed by: @droideck @mreynolds389 (Thank you)

Bump version to 2.4.2

Issue 5701 - CI - Add more tests for referral mode fix (389ds#5810)

Description: Refactor basic referral state test to be correct
according to the current lib389 implementation.
Add more tests to the clu/dsconf_test.py suite, which covers
CLI referral state logic.

Related: 389ds#5701

Reviewed by: @progier389 (Thanks!)

Issue 5755 - Massive memory leaking on update operations (389ds#5824)

Description: Correction of idl memory leak fix

Fix description: Initial mem leak fix (389ds#5803) causing a SEGV during
basic search.

The inital memory leak occurs during idl_set manipulation when a filter
type LDAP_FILTER_AND, filter choice LDAP_FILTER_NOT and an empty set is
used. The complelement idl is stashed for a later intersection, but is
never freed when an empty set is used during set intersection.

The previous fix has been removed and the inital leak corrected.

relates: 389ds#5803

Reviewed by: @tbordaz @progier389  (Thank you)

Issue 389ds#5822 - Allow empty export path for db2ldif

Bug Description:

Until recently, db2ldif did not require an export path to be specified
and would use a specified default location to create a timestamped file.

A recent commit introduced a check to ensure the targeted export file's
parent actually exists. This check is fine if a target filename is
provided, but it fails when no filename is provided; a use case that
was supported before.

Fix Description:

The check should only be done iff a filename for the export is provided.

relates: 389ds#5822

Author: multipleofzero

Reviewed by: @droideck

Issue 5825 - healthcheck - password storage scheme warning needs more info

Description:  Add the current/insecure scheme to the report, and state which
              config setting is insecure.

relates: 389ds#5825

Reviewed by: jchapman & spichugi(Thanks!!)

Issue 5793 - UI - Fix minor crashes (389ds#5827)

Description: After a massive move from webpack to esbuild bundler rework,
fix two minor crashes which happened because of minor copy-paste errors.

Related: 389ds#5793

Reviewed by: @mreynolds389 (Thanks!)

Issue 4719 - CI - Add dsconf add a PTA URL test

Description: This test checks that you are able to add a PTA URL through dsconf. Test tries to add new PTA URL and then check logs for message: "Successfully added URL".

Relates: 389ds#4719

Reviewed by: @mreynolds389 @droideck (Thanks!)

Issue 5752 - RFE - Provide a history for LastLoginTime (389ds#5807)

Bug Description: For the lastloginhistory feature the user
can set the number of login histories that are saved by
modifing the lastloginhistorysize attribute. The CLI currently
allows setting this attribute value to 0 or a non positive int.

Fix Description: Add support for a lastloginhistorysize of 0 which
would disable the feature. Add CLI support for restricting non
positive int values.

relates: 389ds#5752

Reviewed by: @droideck @mreynolds389 (Thank you)

Bump version to 2.4.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs triage The issue will be triaged during scrum
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant