[MIR] galera-4
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| galera-4 (Ubuntu) |
Incomplete
|
Undecided
|
Unassigned | ||
Bug Description
[Availability]
The package `galera-4` has been in Ubuntu universe since 19.10 (Eoan Ermine), replacing the older `galera-3` package, which itself has been available in Ubuntu since 15.10 (Wily Werewolf).
The package `galera-4` builds for the architectures it is designed to work on.
It currently builds and works for architectures: amd64, arm64, armhf, ppc64el, riscv64, s390x
Link to package https:/
[Rationale]
- The package `galera-4` is required in Ubuntu main for MariaDB high-availability (HA) clustering.
- The package `galera-4` will generally be useful for a large part of our user base, particularly those deploying MariaDB in production environments requiring HA.
- It is a key component for cloud deployments and enterprise setups requiring database HA.
- This enables the creation of fully supported, highly available MariaDB clusters on Ubuntu.
- The package `galera-4` is a runtime dependency for the clustering features of `mariadb-server`, which is concurrently proposed for inclusion in main.
- There is no other/better way to solve MariaDB multi-master replication that is already in main. Galera is the canonical solution for this.
- This is the first time this package will be in main.
- The binary packages `galera-4` and `galera-
- All binary packages built by the `galera-4` source package need to be in main to achieve this.
[Security]
- The `galera-4` source package has a clean security history with no CVEs. The older `galera` (v3) package had some vulnerabilities, but `galera-4` is a newer codebase. Security maintenance is handled by backporting fixes from upstream. While some vulnerabilities have been associated with MariaDB's use of Galera (e.g., `wsrep` API), these have been in MariaDB's codebase, not `galera-4` itself.
- CVEs: https:/
- Ubuntu CVE tracker: https:/
- Debian Security Tracker: https:/
- No `suid` or `sgid` binaries. The `garbd` binary is installed in `/usr/sbin` and can be run as a non-root user.
- This Galera Arbitrator daemon can be used in small clusters to avoid split-brain scenarios, but it is fully optional and requires explicit configuration to enable.
- The package provides an optional service (`garbd.service`) that is not enabled by default.
- The package does not open privileged ports (< 1024). The default Galera port is 4567.
- The package exposes external endpoints for cluster communication. These endpoints should be protected by firewall rules.
- The package contains a plugin for MariaDB, a security-sensitive application. It relies on the security features of the database server.
[Quality assurance - function/usage]
- The package needs post-install configuration. Setting up a database cluster is a complex task that depends on the specific network environment and desired topology. There can be no "safe" default that works out of the box. Extensive documentation is available from upstream and as part of MariaDB documentation.
[Quality assurance - maintenance]
- The package is actively maintained by upstream (Codership), in Debian, and in Ubuntu. The packages are maintained by the same team in both Debian and Ubuntu.
- Ubuntu: https:/
- Debian: https:/
- Upstream: https:/
- There are no known critical open bugs that would block its inclusion in main.
- The package does not deal with exotic hardware we cannot support.
- The package has a Stable Release Update (SRU) exception, allowing for regular microrelease updates, which demonstrates its stability and the established process for its maintenance in Ubuntu. See https:/
[Quality assurance - testing]
- The package runs a test suite at build time. A failure in the test suite will cause the build to fail.
- Example build log: https:/
- The package has autopkgtests which are passing on all supported architectures.
- Autopkgtest logs: https:/
- The package does not have failing autopkgtests right now.
- Health in Debian is good: https:/
- Autopkgtest logs: https:/
- Salsa CI is extensive and maintained: https:/
- Link to definition: https:/
[Quality assurance - packaging]
- debian/watch is present and works.
- debian/control defines a correct Maintainer field ("Ubuntu Developers <email address hidden>") for uploads in Ubuntu.
- The package is maintained to the smallest details. The output of `lintian --pedantic` reports very few issues and will be attached to the bug.
- Lintian overrides are not present.
- This package does not rely on obsolete or about to be demoted packages.
- This package has no python2 or GTK2 dependencies.
- The package will not be installed by default.
- Packaging is standard for a C++ project using cmake.
- Link to debian/rules: https:/
[UI standards]
- Application is not end-user facing (it is a database cluster replication library).
- It is a server-side component and does not require a .desktop file.
[Dependencies]
- All runtime dependencies are in main. Running `check-mir` does not raise any issues.
[Standards compliance]
- This package correctly follows FHS and Debian Policy (Standards-Version: 4.7.2).
[Maintenance/Owner]
- I suggest the owning team to be the Ubuntu Server team. The expertise they already have in maintaining the MySQL packaging directly carries over to MariaDB/Galera packaging. I am committed to continue contributing and in general it seems that MariaDB/Galera packaging has many more contributors than MySQL packaging.
- The future owning team is not yet subscribed, but will subscribe to the package before promotion.
- This package does not use static builds.
- This package does not use vendored code.
- This package is not based on Rust or Go.
- The package is regularly built in the archive.
- Build history on Launchpad: https:/
[Background information]
- The package description explains the package well.
- Upstream Name: Galera Cluster
- Link to upstream project: https:/
- The packaging is designed to replace the older `galera-3` and conflicts with other non-standard implementations (e.g., from Percona), positioning it as the canonical version for Ubuntu.
- This package is the essential component to enable High Availability (HA) clustering for MariaDB, a key feature for enterprise and cloud database deployments. Its inclusion in main is critical for providing a fully supported HA database solution in Ubuntu.
CVE References
| Changed in galera-4 (Ubuntu): | |
| assignee: | nobody → Myles Penner (mylesjp) |
| Changed in galera-4 (Ubuntu): | |
| status: | New → Incomplete |
| tags: | added: sec-7520 |

Review for Source Package: galera-4
[Summary]
The essence of the review result from the MIR POV
MIR team ACK under the constraint to resolve the below listed
required TODOs and as much as possible having a look at the
recommended TODOs.
This does need a security review, so I'll assign ubuntu-security
List of specific binary packages to be promoted to main: galera-4, galera-arbitrator-4
Notes:
Required TODOs:
- The embedded asio package should be unbundled if possible and the Ubuntu version should be used instead for the purpose of maintainability. Can the submitter please comment on the feasibility of unbundling asio and using the Ubuntu version instead?
Recommended TODOs:
- The package should get a team bug subscriber before being promoted
[Rationale, Duplication and Ownership]
A team is committed to own long term maintenance of this package - Ubuntu Server Team suggested in the MIR. Requires subscription before promotion.
The rationale given in the report seems valid and useful for Ubuntu
[Dependencies]
OK:
- no other Dependencies to MIR due to this
- SRCPKG checked with `check-mir`
- all dependencies can be found in `seeded-in-ubuntu` (already in main)
- none of the (potentially auto-generated) dependencies (Depends
and Recommends) that are present after build are not in main
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
more tests now.
Problems: None
[Embedded sources and static linking]
(Rules from MIR reviewer template left in for reference)
RULE: - Embedding a library source increases the maintenance burden of a package
RULE: since that source needs to be maintained separately from the source in
RULE: the Ubuntu archive. If a source embeds another package, in general the
RULE: embedded package should not be used and the packaging should be modified
RULE: to use the Ubuntu archive version. When this is not possible, the
RULE: security team must agree to using the embedded source.
- not a go package, no extra constraints to consider in that regard
- not a rust package, no extra constraints to consider in that regard
- Does embed asio, a package which is also in Ubuntu and should be used rather than being embedded in galera-4.
Problems: /launchpad. net/ubuntu/ +source/ asio). When possible, the Ubuntu version should be used for the purpose of maintainability. If this is not possible, the Security team will need to comment on the maintainability of this package. Can the original MIR submitter please comment on the embedded asio package and whether the Ubuntu version can be used instead?
- This package embeds asio which is also available in the Ubuntu archive (https:/
[Security]
OK:
- history of CVEs does not look concerning
- does not run a daemon as root
- does not use webkit1,2
- does not use lib*v8 directly
- does parse data formats (files [images, video, audio,
xml, json, asn.1], network packets, structures, ...) from
an untrusted source - this package participates in Galera group communication and parses replication traffic from peers. I feel this should be treated as an untrusted source and warrants a security review.
- does e...