[freeipa PR#2353][opened] Incompatible IPA versions, pausing replication
by tbordaz
URL: https://github.com/freeipa/freeipa/pull/2353
Author: tbordaz
Title: #2353: Incompatible IPA versions, pausing replication
Action: opened
PR body:
"""
Bug Description:
The bug is not systematic. Symptoms are replication broken and this message
ERR - repl_version_plugin_recv_acquire_cb - [file ipa_repl_version.c, line 119]: Incompatible IPA versions, pausing replication
IPA Version Replication is a plugin that checks replication version (payload).
It does the checking in the early phase of replication protocol (acquire_replica).
The plugin must be enabled on both side, or disabled on both side.
If we have a mixed setting (i.e. disabled on Master and enabled on Replica), there is
a risk that the Master sends an incomplete payload. The incomplete payload will be rejected
by the Replica and replication in both direction will fail.
The risk is that on the master, the plugin got initialized but not started.
Initialization of the plugin registers a broker API that allows a plugin (replication) to call
a callback even if the plugin is not started.
The problem is that to build valid payload the 'IPA Version Replication' needs to be started
(data_version to be initialized).
Fix Description:
The fix consist in:
- define data_version during plugin initialization
- Make plugin callback as noop if the plugin is not started. This is just for perf.
- Prevent to enable the 'IPA Version Replication' when a replica is created.
https://pagure.io/freeipa/issue/7690
"""
To pull the PR as Git branch:
git remote add ghfreeipa https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/2353/head:pr2353
git checkout pr2353
5 years, 8 months