Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@Stolb27
Copy link
Collaborator

@Stolb27 Stolb27 commented Sep 22, 2025

  1. Solved conflicts between 7f02b20 and 54582f9
  2. ADB tests are still run on GitLab. GitHub build fails

magf and others added 10 commits August 15, 2025 15:27
Add concurrency control to cancel previous runs on new push to same PR/branch
Add extra tuple length checks

We faced an issue when tuple length read from logical tape happened to be 1
followed by a SIGSEGV. It's not possible to trace down root cause for it,
so adding more sanity checks for tuple length value. It should replace SIGSEGV
with an error without the need to restart the executor.

Asserts are not enough in this case as the issue happened with a release build.
This enhances existing checks in readtup_heap() and writetup_heap() and should
not have measurable impact.
In the case of a segfault on all segments the MPP operation can be cancelled on
some segments, because the cancel request can come faster than the segfault
happens on these segments. So the qe_exec_finished inject fault is reset
explicitly to avoid unexpected segfaults later. The output of the inject fault
resetting is ignored, because it's not a problem if we sometimes get an error.
The reason of the error is recovering after segfault. The segfault resets all
inject faults.
Suppress FTS during the test case 3 execution to avoid failovers.
Make a checkpoint to remove orphaned files from segments where segfault did
not happen.

Ticket: ADBDEV-7999
Remove hardcoded version 1.2.6 for installed 'behave' in the docker files.

Replace short flags '-s' and '-k' with their full values, as the short ones
are not supported in the latest 'behave'.

Fix gpcheckcat test, which started to fail with the latest version of
'behave'.

Root cause: in the latest 'behave' step definitions are case-sensitive, while
some steps in gpcheckcat.feature and their respective step definitions had some
divergent letter cases.

Fix: align cases in these two files.

Fix test failure due to exception "IOError: [Errno 21] Is a directory:
'/home/gpadmin/gpdb_src/gpMgmt/test/behave/mgmt_utils'".
Root cause: latest 'behave' scans recursively the steps directory and executes
all found python script files (assuming they are step definition it needs to
load). We had 'pid_background_script.py' script in 'steps/data', which is an
auxiliary script, that should be called during test execution. But latest
'behave' tried to launch it without proper parameters, so it resulted in an
exception.

Fix: move 'pid_background_script.py' script outside the 'steps' directory.

Remove 'fake_gpfdist.py' file from 'steps/data' for the reasons listed above.
It is not used anywhere now, so we simply remove it.
Co-authored-by: Evgeniy Ratkov [email protected]
- Remove deprecated env section
- Target reusable CI workflows to v1 tag instead of branch main

Ticket: ADBDEV-8217
It was disabled due to unstable output. Sometimes test was failed, because error
after creating parallel retrieve cursor was printed immediately, but should be
printed, when "rollback" is executed.

The flakiness was caused by the fact that the session hadn't been disconnected
in the previous test. But the previous test generates "query finish request to
process ", which is also sent to session of the next test. It leads to
immediate processing all errors, which are generated by cursors. But at the
normal case errors should be processed at the end of transaction.

This patch adds command to quit all connection after previous test. With this
change one test wouldn't affect another.
This patch provides means to mark a subset of columns of a foreign table as the 
distribution keys of the table. It allows to eliminate the Redistribute motion 
when, for example, the user wants to insert data from a Greengage 
hash-distributed table into a foreign table. Before this patch, the insert plan 
would contain Redistribute motion, as the foreign table was always assumed as 
randomly distributed. With this patch, the foreign table is handled as a 
hash-distributed table during planning, allowing the planner to remove 
Redistribute motion. 

This patch introduces new options for a column definition:
1. 'insert_dist_by_key', which expects a boolean value. It marks the column as
a distribution key.
2. 'insert_dist_by_key_weight', which expects a non-negative integer value. It
sets the weight of the column when the distribution key set contains more than
one column. The overall order of distribution keys is following:
a) all columns that have an explicit weight, sorted by their weights
ascendingly;
b) then all other columns in the order they were set during the table creation.

This feature works only for foreign tables that have 'mpp_execute' set to
'all segments' (either explicitly for the table or derived from SERVER or
FOREIGN DATA WRAPPER options).

Tests are provided in postgres_fdw. A small change in postgres_fdw is introduced
to support the new column options.
Add unit testing for multikey tuplesort.

There are some issues related to the multikey tuplesort which is specific
to this version. It is tested by the regression suite, but it's difficult
to evaluate actual test coverage and which corner cases are covered.

This commit is to extend tuplesort_mk with a specific unit tests. Tests focus on
disk-based logical tapes sorting include sort for tuples with fixed-length
binary attributes and sorting for varlena attributes.

To have a wider coverage, the test tries different number of attributes and,
for the varlena, used pseudo-random field length. Also the number of keys can
be vary.
In the case of a segfault on all segments the MPP operation can be cancelled on
some segments, because the cancel request can come faster than the segfault
happens on these segments. So the qe_exec_finished inject fault is reset
explicitly to avoid unexpected segfaults later. The output of the inject fault
resetting is ignored, because it's not a problem if we sometimes get an error.
The reason of the error is recovering after segfault. The segfault resets all
inject faults.
Suppress FTS during the test cases 2 and 3 execution to avoid failovers.
Make a checkpoint to remove orphaned files from segments where segfault did
not happen.
The idea of fixes is taken from 7804831.

Ticket:ADBDEV-8076
@Stolb27 Stolb27 enabled auto-merge September 22, 2025 13:52
@Stolb27 Stolb27 merged commit 8918436 into adb-6.x Sep 22, 2025
10 of 12 checks passed
@Stolb27 Stolb27 deleted the sync-6.29.1 branch September 22, 2025 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants