Repository navigation
Conversation
Member
Author
Add devops/build/packaging/deb/ubuntu26.04, copied from ubuntu24.04. The package names in control change with each Ubuntu release, so adjust these for 26.04 (resolute): - gcc-13 and g++-13 become gcc-15 and g++-15, the compiler of the 26.04 build image. - libcgroup2 becomes libcgroup3, in Build-Depends and Depends. - libxml2 becomes libxml2-16 in Depends. The libxml2 package no longer has an installable version. The changelog distribution is now resolute. Verified on Ubuntu 26.04 with the published build and test images: the DEB builds, "apt-get install" of it succeeds in the test image, no shared library of the installed files is unresolved, and a cluster started with gpinitsystem from the installed package works. Assisted-by: Claude Code
Run the DEB build, the DEB install test and the DEB test suites on Ubuntu 26.04, using the cbdb-build-ubuntu26.04 and cbdb-test-ubuntu26.04 images. Add 26.04 to the three places that list the Ubuntu versions: the build matrix, the install test matrix, and the default of the test matrix that is generated for the "all" case of workflow_dispatch. The 26.04 jobs need the Ubuntu 26.04 fixes for PAX, contrib/xml2 and the gpMgmt scripts, so they fail until those are merged. Assisted-by: Claude Code
tuhaihe
force-pushed
the
ci-add-ubuntu26.04-deb
branch
from
October 10, 2026 02:05
35ace91 to
ae14a99
Compare
GCC 15 compiles C as C23 by default. In C23, "void f()" means "void f(void)", and not an unspecified parameter list as before, so a function defined with empty parentheses no longer converts to a function pointer type that has parameters. Together with GCC 14 making -Wincompatible-pointer-types an error, "make unittest-check" fails on Ubuntu 26.04 in 9 test files: error: passing argument 5 of '_will_return' from incompatible pointer type [-Wincompatible-pointer-types] error: initialization of 'void (*)(void **)' from incompatible pointer type 'void (*)(void)' Give 11 functions the parameter list of the type they are used as: - 9 side effect callbacks passed to will_return_with_sideeffect() and will_be_called_with_sideeffect(), of type void (*)(void *): _ExceptionalCondition (6 files), _errfinish_impl (2 files) and RedZoneHandler_DetectRunawaySession_TrackedBytesSanity. None of them is called directly. The use of _ExceptionalCondition in vmem_tracker_test.c is inside #ifdef USE_ASSERT_CHECKING, so it is only compiled in a build with --enable-cassert. - 2 cmockery test functions in ginpostinglist_test.c, of type void (*)(void **). Checked on Ubuntu 26.04 (GCC 15.2) with "make -k unittest-check". With the CI configuration it had 21 errors in 9 files before, and now passes. With --enable-cassert it has no compile errors, and all unit tests pass. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE (cherry picked from commit d0c3bbd)
On Ubuntu 26.04, "make installcheck-good" and "installcheck-cbdb-parallel" stop before any test runs: scanning for flaky fault-injection tests... comm: file 1 is not in sorted order comm: input is not in sorted order make: *** [GNUmakefile:213: installcheck-good] Error 1 Ubuntu 26.04 replaces GNU coreutils with uutils coreutils. In the UTF-8 locale of the build images (en_US.UTF-8), its sort -u and comm do not agree on the order of the two test lists, so comm rejects its input. GNU coreutils 9.4 on Ubuntu 24.04 does not have this problem. Make sort and comm use the same order by running the script in the C locale. The test names are ASCII, so only the collation changes. Checked on Ubuntu 26.04 in the build image: the script fails in the default locale and passes with LC_ALL=C. It passes in both ways on Ubuntu 24.04. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE (cherry picked from commit ac6f417)
With Perl 5.40 (Getopt::Long 2.57, as in Ubuntu 26.04), every run of gpdiff.pl prints a warning: Duplicate specification "verbose|Verbose" for option "verbose" It is printed more than a thousand times in a test run, and it reaches the test output. Getopt::Long ignores case by default and gpdiff.pl does not turn that off (it only sets pass_through), so "Verbose" is already matched by "verbose". Use "verbose" alone. Both -verbose and -Verbose still work. Checked on Ubuntu 26.04: the warning is gone with the new specification, and Ubuntu 24.04 (Getopt::Long 2.54) is not affected either way. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE (cherry picked from commit a76a748eb10745a6c08a63632d6b11fdc91f87d8)
Every object of the backend unit tests is compiled with
-DDLSUFFIX=.so, and pg_config.h then defines DLSUFFIX as ".so":
pg_config.h:47:9: warning: 'DLSUFFIX' redefined
47 | #define DLSUFFIX ".so"
<command-line>: note: this is the location of the previous definition
The two definitions differ, because the one from the command line is
not a string. The warning is printed more than a hundred times in a
unittest-check run, and the command line value is never the one that is
used.
Quote the value, as src/backend/utils/fmgr/Makefile already does. The
two definitions are then the same, and there is no warning.
Checked with GCC 13 and GCC 15: the unquoted form warns, and the quoted
form does not.
Assisted-by: Claude Code
Backpatch-through: REL_2_STABLE
(cherry picked from commit 00917fc)
Python 3.14 (PEP 765) warns at compile time about a return in a finally block. Every gp* utility that imports gppylib.operations.buildMirrorSegments prints it on stderr: buildMirrorSegments.py:293: SyntaxWarning: 'return' in a 'finally' block This breaks tests that compare the output of those utilities, such as contrib/sslinfo, where "gpstop -arf" is run from the test and the two extra lines make the result differ from the expected file. In _update_config(), "return backout_map" was in the finally block that restores the SIGINT handler. A return there discards any exception from the try block, so a failure of updateSystemConfig() was silently ignored and None was returned. The caller then went on with the recovery, and _revert_config_update() failed later with a TypeError from len(None). Return after the finally block. The SIGINT handler is restored in the same way, and an exception from updateSystemConfig() is now raised to the caller with its own message, as every other step of the recovery does. This is the only return, break or continue in a finally block in the repository. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE (cherry picked from commit 4e1f55a)
Python 3.12 and later warn at compile time about a backslash that is not a valid escape sequence in a normal string, and the warning is printed every time such a script is run: mocker.py:245: SyntaxWarning: "\[" is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\["? The warning of mocker.py is printed about sixty times in a unittest-check run, once for every test directory, and the ones of contrib/try_convert/scripts show up in the "make installcheck" of the contrib modules. The warning is the same on Ubuntu 24.04 and 26.04. Double the backslash of each invalid escape sequence, which gives the same string value as before, in 12 files: mocker.py, gpcheckperf, gpmemreport, gpssh-exkeys, two scripts in src/backend/gporca/scripts and the scripts in contrib/try_convert/scripts. Checked for each file that the syntax tree of the new source is the same as the one of the old source, which means every string has the same value, and that the file compiles without a warning. No Python file in the repository has an invalid escape sequence now. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE (cherry picked from commit 4cb8cfa)
init_system.sh of the test images runs "sudo chown -R gpadmin.gpadmin /data1". A dot between the user and the group is the old syntax, and chown warns about it at the start of every test job and every container start: chown: warning: '.' should be ':': 'gpadmin.gpadmin' Use "gpadmin:gpadmin" in the six test images (Rocky 8, 9 and 10, Ubuntu 22.04, 24.04 and 26.04). It does the same, without the warning. Checked with GNU coreutils 9.4 (Ubuntu 24.04) and uutils coreutils 0.10.0 (Ubuntu 26.04): both warn for the dot, and neither warns for the colon. Assisted-by: Claude Code (cherry picked from commit 5e1fcf34011359d6de4727131e67d24f3a47d4c7)
The test jobs of the build workflows list the files of the results directory with: find "$results_dir" -type f -ls >> "$log_file" 2>&1 | tee -a ... $log_file is not set in that step, so the redirection fails and the job log gets an error instead of the list: line 102: : No such file or directory The listing is lost, and the error appears in every test job that has a results directory, on all Ubuntu versions. Remove the redirection, so that the list goes to tee, which shows it and appends it to the results log of the configuration, as the other echo lines of the step already do. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE (cherry picked from commit fe0b10d496c7f74447f82fb7f3fa4e17beccf920)
tuhaihe
force-pushed
the
ci-add-ubuntu26.04-deb
branch
from
October 10, 2026 08:15
0df601f to
c42a802
Compare
tuhaihe
marked this pull request as ready for review
October 10, 2026 09:28
This was referenced Oct 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #ISSUE_Number
What does this PR do?
Type of Change
Breaking Changes
Test Plan
make installcheckmake -C src/test installcheck-cbdb-parallelImpact
Performance:
User-facing changes:
Dependencies:
Checklist
Additional Context
CI Skip Instructions