All work
- PXC crashes with pxc_strict_mode=PERMISSIVE when bootstraping tables without an explicit primary keyPXC-4689
- Regression in async replication handling - empty transaction stalls the replica threadPXC-4688Kamil Holubicki
- PXC Node with pxc_strict_mode=PERMISSIVE Intermittently Unresponsive on Replication PortPXC-4685
- UPDATE query that matches two tables but modifies only one causes an MDL BF-BF conflict on other nodes.PXC-4684Resolved issue: PXC-4684Kamil Holubicki
- Node leaves the cluster after an error in a stored procedurePXC-4683
- Processing event queue:... -nan%PXC-4682aibek.bukabayev
- Executing dml under SET SESSION.GTID_NEXT on multiple nodes causes infinity wait on repl_act.wait_condPXC-4665
- Executing transactions with the same GTID on different nodes causes the node to exitPXC-4664Kamil Holubicki
- Server crash when using FULL TEXT INDEXPXC-4662Aaditya Dubey
- PXC8.4.3 nodes crashing with "Signal SIGSEGV (Address not mapped to object) at address 0x8"PXC-4658Resolved issue: PXC-4658
- MDL BF-BF conflict between two applier threadsPXC-4657Resolved issue: PXC-4657Kamil Holubicki
- SIGSEV on rpl_gtid_owned > unordered_map - with high activityPXC-4652Resolved issue: PXC-4652Kamil Holubicki
- [DOCS] - update 8.0.41-32 release notes for GCS protocol 8.0PXC-4650Resolved issue: PXC-4650patrick.birch
- 8.4.3 uses an older Galera version than 8.0.41PXC-4648Resolved issue: PXC-4648Kamil Holubicki
- Provide a way to distinguish SST failure cases in garbdPXC-4645Resolved issue: PXC-4645Kamil Holubicki
- Inconsistency when adding a FKPXC-4644
- PXC node stalls due to lock waiting TOI on parent table and waiting metadata lock on sub tablesPXC-4642
- binlog_utils_udf plugin cannot access binlog file after SST because of inconsistent binlog.index contentsPXC-4638Resolved issue: PXC-4638Kamil Holubicki
- FLUSH TABLE <table> WITH READ LOCK blocks other tables replicationPXC-4637
- Galera's 'wsrep_restart_replica' restarts async replica on non-primary statePXC-4632
- Prevent SST after IST failurePXC-4631Kamil Holubicki
- Creating temporary table as select puts the whole session in TOI/NBO not allowing to kill any queryPXC-4629Resolved issue: PXC-4629aibek.bukabayev
- Assertion failure on donor if joiner is killed in debug buildPXC-4627Kamil Holubicki
- Joining node with clone SST method fails with component_keyring_file based encryptionPXC-4622Resolved issue: PXC-4622Kamil Holubicki
- clone sst user password is getting logged in the error logPXC-4609Resolved issue: PXC-4609Marco Tusa
- The changed SSL value on wsrep_provider_options on my.cnf is not being appliedPXC-4608
- clone plugin is left installed on the joiner node after SST.PXC-4607Resolved issue: PXC-4607Marco Tusa
- Update PXC installation Limitation documentation sectionPXC-4606Resolved issue: PXC-4606patrick.birch
- Assertion `msg.uuid() != GU_UUID_NIL' failed in debug buildPXC-4604
- Documentation bug on the step for enabling the release 8.4PXC-4591
- Uninstalling Percona Telemetry DB component causing inconsistencyPXC-4590Resolved issue: PXC-4590patrick.birch
- Clone SST on joiner waits indefinitely if the donor node is killed while SST.PXC-4585Resolved issue: PXC-4585Kamil Holubicki
- PXC8.0 and 8.4 yum installations on el8 pull in old 1.0.2 ssl libs via compat-openssl10 dependencyPXC-4579Resolved issue: PXC-4579Vadim Yalovets
- Please update 'use-extra' and 'extra_port' config params 8.0 and 8.4 documentationPXC-4577Resolved issue: PXC-4577patrick.birch
- Remove extra_port handling in wsrep_sst_xtrabackup-v2 SST scriptPXC-4576Resolved issue: PXC-4576Kamil Holubicki
- Missing SystemD related documentation pertaining to TimeoutStartSecPXC-4574Resolved issue: PXC-4574patrick.birch
- SST Role lacks INNODB_REDO_LOG_ARCHIVEPXC-4573Resolved issue: PXC-4573Kamil Holubicki
- Please document that PXC needs a local socket to work properlyPXC-4572Resolved issue: PXC-4572patrick.birch
- Node leaves cluster when tying to grant table specific permissions to userPXC-4568Resolved issue: PXC-4568
- Percona XtraDB Cluster 8.0.36 CVE'sPXC-4564Resolved issue: PXC-4564
- Percona XtraDB Cluster 8.0.36 CVEsPXC-4563Resolved issue: PXC-4563Kamil Holubicki
- int wsrep::transaction::start_transaction(const wsrep::transaction_id&): Assertion `active() == false' failedPXC-4561Resolved issue: PXC-4561Venkatesh Prasad
- mysql cannot connect to mysql-server in post-processing , if the host is not localhost in the .mylogin.cnfPXC-4558Resolved issue: PXC-4558Kamil Holubicki
- Assertion `state() == s_certifying' failure in debug buildPXC-4556
- Assertion `state() == s_aborting || state() == s_must_replay' failed on pxc node while replicating CTASPXC-4549
- PXC is not compatible with sql_generate_invisible_primary_key settingPXC-4548
- databases_size value in the json file created by the percona_telemetry is zero.PXC-4546Resolved issue: PXC-4546Kamil Holubicki
- percona_telemetry is not able to fetch the databases_count with mysql.session userPXC-4545Resolved issue: PXC-4545Kamil Holubicki
- Wrong Error message for 'RESET BINARY LOGS AND GTIDS' on cluster node.PXC-4544Resolved issue: PXC-4544Kamil Holubicki
- Replication fails and the node becomes Inconsistent if transaction is committed on node by setting tagged gtidPXC-4526aibek.bukabayev
50 of
WITH_WSREP code duplication causes mismerges
Done
General
Escalation
General
Escalation
Description
Environment
None
causes
Details
Details
Assignee
Venkatesh Prasad
Venkatesh Prasad(Deactivated)Reporter
Zsolt Parragi
Zsolt ParragiLabels
Original estimate
1h 7m
Time tracking
Fix versions
Affects versions
Priority
Created March 4, 2020 at 9:49 AM
Updated March 6, 2024 at 9:46 PM
Resolved April 4, 2023 at 1:37 PM
Activity
Show:
A recurring pattern in PXC is that if a code has to differ from PS, instead of modifying it directly, the following ifdef pattern is used:
#ifdef WITH_WSEP //duplicated code from PS, modified to fit PXC #else //original PS code #endif
This makes the change clearly visible for the developers, however it also causes mismerges when using `git merge` (e.g. next major version PS merge)
When using this pattern, and the original PS code is modified, `git merge` will modify the original PS code, but leave the duplicated PXC code as is. Unless the unchanged duplicated fails to compile, this is easy to miss in a huge merge (the 8.0 major version diffs are quite large compared to 5.6/5.7)
This means that the bug fixed / feature implemented in the changed block won't be there in PXC, or won't work correctly, as was the case with the clone plugin, which was introduced during one of the 8.0 releases.
Compared to this, if we would stop using WITH_WSREP, and would simply modify the code (without duplicating it) `git merge` would report a conflict for each of our modified code blocks (when it's not able to apply the patch on the modified code automatically), pointing out the change.
We either should (I would say before the next upstream merge):
Remove WITH_WSREP, so automerge will warn us correctly of issues
Or develop a merge helper script, which detects changes in WITHOUT_WSREP regions, and warns the developer doing the merge