patronictl edit-config fails to save configuration file changes in vmware-postgres-15.10.0.el9.x86_64
search cancel

patronictl edit-config fails to save configuration file changes in vmware-postgres-15.10.0.el9.x86_64

book

Article ID: 390084

calendar_today

Updated On:

Products

VMware Tanzu SQL

Issue/Introduction

In vmware-postgres-15-10.0.el9.x86_64, patronictl edit-config fails to save configuration file edits. The following error is displayed when using patroni edit-config in interactive mode and when editing the dynamic configuration.

 

# patronictl edit-configTraceback (most recent call last):

  File "/opt/vmware/patroni-python3/bin/patronictl", line 33, in <module>
    sys.exit(load_entry_point('patroni==3.3.3', 'console_scripts', 'patronictl')())
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/patroni/ctl.py", line 2135, in edit_config
    show_diff(before_editing, after_editing)
  File "/opt/vmwa/python/lib64/python3.9/site-packages/patroni/ctl.py", line 1930, in show_diff
    markup_to_pager(PatchStream(buf), opts)
  File "/opt/vmware/patroni-python3/python/lib64/python3.9/site-packages/ydiff.py", line 639, in markup_to_pager
    theme=opts.theme)
AttributeError: type object 'opts' has no attribute 'theme' 

Environment

vmware-postgres15-15.10-1.el9.x86_64
vmware-postgres-patroni-3.3.3-3.el9.x86_64

Cause

The Patroni RPM was built using ydiff version 1.42, which has known compatibility issues with Patroni 3.3.3, as reported in the Patroni open-source repository.

 

 

Resolution

Workaround: Manually downgrade the ydiff library from version 1.42 to 1.3 in the Patroni-installed Python virtual environment.

 

Downgrade Steps (as root user):

1. Navigate to the Patroni Python venv directory:
cd /opt/vmware/patroni-python3.11/python/bin

2. Activate the Patroni Python virtual environment:
source activate

3. Check the installed ydiff version:
pip3 list | grep ydiff

4. Uninstall the current ydiff version:
pip3 uninstall ydiff

5. Verify ydiff removal:
pip3 list | grep ydiff

6. Install ydiff version 1.3:
pip3 install ydiff==1.3

7. Confirm the installed version:
pip3 list | grep ydiff