Bug 2224930 - "Error: name 'args_instance' is not defined" when dsconf <instance> replication monitor
Summary: "Error: name 'args_instance' is not defined" when dsconf <instance> replicati...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Directory Server
Classification: Red Hat
Component: 389-ds-base
Version: 12.3
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: DS12.3
: dirsrv-12.3
Assignee: LDAP Maintainers
QA Contact: LDAP QA Team
Evgenia Martynyuk
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-07-24 01:43 UTC by Ding-Yi Chen
Modified: 2023-07-24 14:17 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-07-24 14:16:29 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github 389ds 389-ds-base issues 5850 0 None open Error: name 'args_instance' is not defined" when dsconf <instance> replication monitor 2023-07-24 06:43:03 UTC

Description Ding-Yi Chen 2023-07-24 01:43:39 UTC
Description of problem:

I ran:

dsconf -v -D 'cn=directory manager' ldap://localhost replication monitor

And input credentials like the following:

Enter password for cn=Directory Manager on ldap://localhost

Enter a bind DN for replica.example.com:389: cn=directory manager
Enter a password for cn=directory manager on replica.example.com:389: 

Then

Traceback (most recent call last):
  File "/usr/sbin/dsconf", line 138, in <module>
    result = args.func(inst, None, log, args)
  File "/usr/lib/python3.9/site-packages/lib389/cli_conf/replication.py", line 422, in get_repl_monitor_info
    report_dict = repl_monitor.generate_report(get_credentials, args.json)
  File "/usr/lib/python3.9/site-packages/lib389/replica.py", line 2708, in generate_report
    args_instance[SER_HOST] = supplier_hostname
NameError: name 'args_instance' is not defined
ERROR: Error: name 'args_instance' is not defined


Version-Release number of selected component (if applicable):
389-ds-base-2.2.4-3.el9.x86_64

Upstream also seems to have this


How reproducible:
Always

Steps to Reproduce:
0. Setup environment with 389-ds replicas
1. dsconf -v -D 'cn=directory manager' ldap://localhost replication monitor
2. Input credentials

Actual results:

Traceback (most recent call last):
  File "/usr/sbin/dsconf", line 138, in <module>
    result = args.func(inst, None, log, args)
  File "/usr/lib/python3.9/site-packages/lib389/cli_conf/replication.py", line 422, in get_repl_monitor_info
    report_dict = repl_monitor.generate_report(get_credentials, args.json)
  File "/usr/lib/python3.9/site-packages/lib389/replica.py", line 2708, in generate_report
    args_instance[SER_HOST] = supplier_hostname
NameError: name 'args_instance' is not defined
ERROR: Error: name 'args_instance' is not defined


Expected results:

No error


Additional info:

Workaround: edit replica.py, and add args_instance to lib389._constants import like:


from lib389._constants import CONSUMER_REPLICAID, REPLICA_RDWR_TYPE, REPLICA_FLAGS_WRITE, REPLICA_RDONLY_TYPE, \
                              REPLICA_FLAGS_RDONLY, REPLICA_ID, REPLICA_TYPE, REPLICA_SUFFIX, REPLICA_BINDDN, \
                              RDN_REPLICA, REPLICA_FLAGS, REPLICA_RUV_UUID, REPLICA_OC_TOMBSTONE, DN_MAPPING_TREE, \
                              DN_CONFIG, DN_PLUGIN, REPLICATION_BIND_DN, REPLICATION_BIND_PW, ReplicaRole, \
                              args_instance, defaultProperties

Comment 1 mreynolds 2023-07-24 14:13:54 UTC
This was previously fixed in upstream ticket:  https://github.com/389ds/389-ds-base/issues/5588

Comment 2 mreynolds 2023-07-24 14:16:29 UTC
Already fixed in current version (RHDS 12.2 on RHEL 9.2):  2.2.7-3


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