Fix filtering of the redundant decompress chunk clauses over a compressed index path #13493
Workflow file for this run
This file contains 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
name: Regression Linux i386 | |
"on": | |
push: | |
branches: | |
- main | |
- prerelease_test | |
paths-ignore: | |
- '**.md' | |
- 'LICENSE*' | |
- NOTICE | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
- 'LICENSE*' | |
- NOTICE | |
jobs: | |
config: | |
runs-on: ubuntu-latest | |
outputs: | |
pg_latest: ${{ steps.setter.outputs.PG_LATEST }} | |
pg15_latest: ${{ steps.setter.outputs.PG15_LATEST }} | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Read configuration | |
id: setter | |
run: python .github/gh_config_reader.py | |
regress_linux_32bit: | |
name: PG${{ matrix.pg }} ${{ matrix.build_type }} linux-i386 | |
runs-on: ubuntu-latest | |
needs: config | |
container: | |
image: i386/debian:buster-slim | |
options: --privileged --ulimit core=-1 | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
IGNORES: "append-* debug_notice transparent_decompression-* | |
transparent_decompress_chunk-* pg_dump | |
dist_move_chunk dist_param dist_insert remote_txn telemetry" | |
SKIPS: chunk_adaptive histogram_test | |
strategy: | |
fail-fast: false | |
matrix: | |
pg: ${{ fromJson(needs.config.outputs.pg_latest) }} | |
build_type: [ Debug ] | |
include: | |
- pg: ${{ fromJson(needs.config.outputs.pg15_latest) }} | |
ignores_version: partialize_finalize | |
steps: | |
- name: Install build dependencies | |
run: | | |
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!') | |
echo '/tmp/core.%h.%e.%t' > /proc/sys/kernel/core_pattern | |
apt-get update | |
apt-get install -y gnupg postgresql-common | |
yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh | |
apt-get install -y gcc make cmake libssl-dev libkrb5-dev libipc-run-perl \ | |
libtest-most-perl sudo gdb git wget gawk | |
apt-get install -y postgresql-${PG_MAJOR} postgresql-server-dev-${PG_MAJOR} | |
- name: Build pg_isolation_regress | |
run: | | |
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!') | |
wget -q -O postgresql.tar.bz2 \ | |
https://ftp.postgresql.org/pub/source/v${{ matrix.pg }}/postgresql-${{ matrix.pg }}.tar.bz2 | |
mkdir -p ~/postgresql | |
tar --extract --file postgresql.tar.bz2 --directory ~/postgresql --strip-components 1 | |
cd ~/postgresql | |
./configure --prefix=/usr/lib/postgresql/${PG_MAJOR} --enable-debug \ | |
--enable-cassert --with-openssl --without-readline --without-zlib | |
make -C src/test/isolation | |
chown -R postgres:postgres ~/postgresql | |
- name: Checkout TimescaleDB | |
uses: actions/checkout@v3 | |
- name: Build TimescaleDB | |
run: | | |
# The owner of the checkout directory and the files do not match. Add the directory to | |
# Git's "safe.directory" setting. Otherwise git would complain about | |
# 'detected dubious ownership in repository' | |
git config --global --add safe.directory $(pwd) | |
./bootstrap -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" -DPG_SOURCE_DIR=~/postgresql -DREQUIRE_ALL_TESTS=ON | |
make -C build install | |
chown -R postgres:postgres . | |
- name: make installcheck | |
id: installcheck | |
shell: bash | |
run: | | |
set -o pipefail | |
export LANG=C.UTF-8 | |
sudo -u postgres make -k -C build installcheck IGNORES="${IGNORES} \ | |
${{ matrix.ignores_version }}" SKIPS="${SKIPS}" | tee installcheck.log | |
- name: Show regression diffs | |
if: always() | |
id: collectlogs | |
shell: bash | |
run: | | |
find . -name regression.diffs -exec cat {} + > regression.log | |
find . -name postmaster.log -exec cat {} + > postgres.log | |
if [[ -s regression.log ]]; then echo "regression_diff=true" >>$GITHUB_OUTPUT; fi | |
grep -e 'FAILED' -e 'failed (ignored)' installcheck.log || true | |
cat regression.log | |
- name: Coredumps | |
if: always() | |
id: coredumps | |
shell: bash | |
run: | | |
# wait in case there are in-progress coredumps | |
sleep 10 | |
if compgen -G "/tmp/core*" > /dev/null; then | |
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!') | |
apt-get install postgresql-${PG_MAJOR}-dbgsym >/dev/null | |
for file in /tmp/core* | |
do | |
gdb /usr/lib/postgresql/${PG_MAJOR}/bin/postgres -c $file <<<" | |
set verbose on | |
set trace-commands on | |
show debug-file-directory | |
printf "'"'"query = '%s'\n\n"'"'", debug_query_string | |
frame function ExceptionalCondition | |
printf "'"'"condition = '%s'\n"'"'", conditionName | |
up 1 | |
l | |
info args | |
info locals | |
bt full | |
" | tee -a stacktrace.log | |
done | |
echo "coredumps=true" >>$GITHUB_OUTPUT | |
exit 1 | |
fi | |
- name: Save regression diffs | |
if: always() && steps.collectlogs.outputs.regression_diff == 'true' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Regression diff linux-i386 PG${{ matrix.pg }} | |
path: | | |
regression.log | |
installcheck.log | |
- name: Save stacktraces | |
if: always() && steps.coredumps.outputs.coredumps == 'true' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Stacktraces linux-i386 PG${{ matrix.pg }} | |
path: stacktrace.log | |
- name: Save PostgreSQL log | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: PostgreSQL log linux-i386 PG${{ matrix.pg }} | |
path: postgres.log | |
- name: Save TAP test logs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: TAP test logs ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }} | |
path: | | |
build/test/tmp_check/log | |
build/tsl/test/tmp_check/log | |
- name: Upload test results to the database | |
if: always() | |
shell: bash | |
env: | |
# GitHub Actions allow you neither to use the env context for the job name, | |
# nor to access the job name from the step context, so we have to | |
# duplicate it to work around this nonsense. | |
JOB_NAME: PG${{ matrix.pg }} ${{ matrix.build_type }} linux-i386 | |
CI_STATS_DB: ${{ secrets.CI_STATS_DB }} | |
GITHUB_EVENT_NAME: ${{ github.event_name }} | |
GITHUB_REF_NAME: ${{ github.ref_name }} | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }} | |
GITHUB_RUN_ID: ${{ github.run_id }} | |
GITHUB_RUN_NUMBER: ${{ github.run_number }} | |
JOB_STATUS: ${{ job.status }} | |
run: | | |
if [[ "${{ github.event_name }}" == "pull_request" ]] ; | |
then | |
GITHUB_PR_NUMBER="${{ github.event.number }}" | |
else | |
GITHUB_PR_NUMBER=0 | |
fi | |
export GITHUB_PR_NUMBER | |
scripts/upload_ci_stats.sh |