178 Commits

Author SHA1 Message Date
Sven Klemm
cc94d56d0e Add 2.0.0-rc1 to update test scripts 2020-10-06 01:50:53 +02:00
Sven Klemm
ec41593978 Ignore memory leaks in openssl code
Ignore memory leaks in openssl code when running sanitizer tests
in CI.
2020-10-05 17:38:00 +02:00
gayyappan
b341506cb2 Enable continuous_aggs_policy test
Disable NOTICE messages for time based tables in
continuous_aggs_policy test. The refresh sometimes
does not have anything to update as the intervals
are computed based off now(). This causes intermittent
failures due to NOTICEs that the cagg is up to date.

Remove continuous_aggs_policy from ignores list in CI
scripts.
2020-10-01 16:47:10 -04:00
Ruslan Fomkin
cdb4c8fa4f Ignore flaky test for now
continuous_aggs_policy is flaky and prevents to proceed with current
PRs. This commit ignores it until it is fixed.
2020-10-01 12:40:19 +02:00
Sven Klemm
6cc9871be8 Make update test consistent
This patch changes the update test to use the same checks
between clean / updated install and dumped/restored install.
Previously only a small subset of the checks would be run against
the updated instance and most of the tests would only run against
the dumped and restored container.
2020-09-28 17:19:04 +02:00
Brian Rowe
e79308218a Add invalidations for incomplete aggregates
As part of the 2.0 continous aggregate changes, we are removing the
continuous_aggs_completed_threshold table.  However, this may result
in currently running aggregates being considered complete even if
their completed threshold hadn't reached the invalidation threshold.
This change fixes this by adding an entry to the invalidation log
for any such aggregates.

Fixes #2314
2020-09-25 09:17:53 -07:00
Ruslan Fomkin
01fc0de040 Fix failing isolation test on PG11.0
Early version of PG11 produces slightly different output for isolation
tests. Thus the affected tests are ignored.
continuous_aggs_concurrent_refresh is one of them and this commit adds
it to the ignored test list.
2020-09-15 15:30:07 +02:00
gayyappan
dd90ffd009 Report docker build failures for update test
The update tests use the scripts for building the
timescaledb image. Build errors should be reported
and return a failure code. This will force the failure
of the rest of the pipeline.
2020-09-09 17:54:14 -04:00
Sven Klemm
74b01fbd1b Add 1.7.4 to update test scripts 2020-09-08 20:36:21 +02:00
Sven Klemm
1eceee3151 Fix sanitizer test script
This patch removes the -t and -i options from docker exec
since this script is not interactive and not run in terminal
on CI.
2020-08-29 23:15:20 +02:00
Sven Klemm
ba93cbf50c Add 1.7.3 to update test scripts 2020-08-27 13:57:22 +02:00
Sven Klemm
1c92a29ba3 Fix macos ci builds
Since GitHub updated the macos image used for CI it updated llvm
to a version that is buggy on macos. So this patch disables building
postgres with llvm support on macos. It also fixes the cache suffix
code for macos because it changed with the latest runner version,
and uses the image version now as cache suffix.

https://bugs.llvm.org/show_bug.cgi?id=47226
2020-08-24 17:02:16 +02:00
Sven Klemm
91f64b8177 Run regression tests on PG 11.9 and 12.4
This patch changes all regression tests that were running on 11.8
and 12.3 to 11.9 and 12.4.
2020-08-15 00:38:21 +02:00
Sven Klemm
cb801fb215 Run update test on PG 11.8 and 12.3
This patch changes the update test to run on PG 11.8 and 12.3 instead
of 11.0 and 12.0. This patch also adds additional diagnostic output
when errors occur during the update test.
2020-08-12 02:29:24 +02:00
Sven Klemm
530cb8296e Add check for unreferenced test files
This patch adds a check for test files not referenced in the
CMakeLists.txt file to CI.
2020-08-11 19:16:27 +02:00
Sven Klemm
417908f19b Fix macos build
A recent change changed the macos build to run in release mode
which also changed postgres to be built without assertions.
Since we inherit the assertion setting from postgres this leads
to assertions being disabled for our code as well.
With assertions disabled clang errors on detecting null pointer
dereferences so this patch turns assertions for macos back on.
Since the postgres build is cached this took not effect immediately
and remained unnoticed in the CI run against the PR introducing the
change.
2020-08-01 17:24:24 +02:00
Ruslan Fomkin
f62fd957b7 Test both debug and release on MacOS in CI
Switches MacOS test in PR to run release, so the build time is
reduced. Adds the test in Debug to scheduled job.
2020-07-31 23:08:53 +02:00
Sven Klemm
aec8758b06 Improve update test github output
This patch adds the diff output of the update test in a separate step
in the workflow and also uploads the update test diff as artifact.
2020-07-28 18:15:14 +02:00
Sven Klemm
5c70dfcc0e Add isolation test files to license check
This patch enhances the license check script to check for a
license header in isolation test files
2020-07-20 13:22:49 +02:00
Sven Klemm
c4aa8cf7cf Move cron tests to GitHub actions
This patch moves the sanitizer, abi breakage and memory leak
tests from travis to github actions.
2020-07-08 19:58:38 +02:00
Sven Klemm
5bb4bfdf50 Ignore results of flaky tests 2020-07-08 19:16:37 +02:00
Sven Klemm
41c89b5648 Add 1.7.2 to update test scripts 2020-07-06 17:59:15 +02:00
Sven Klemm
666369ea2e Migrate update test to GitHub actions
This patch migrates the update tests from Travis to GitHub actions.
2020-07-06 14:21:00 +02:00
Sven Klemm
68ba6e073c Add regresscheck-shared sql files to license check
This adds the directories used by regresscheck-shared to the license
check and adds a license where it is currently missing.
2020-07-03 13:00:36 +02:00
Sven Klemm
8a1976a6b9 Upload coredumps as artifact
This patch adds collecting coredumps to the regression workflow
in addition to the binary all shared libraries used by the coredump
are collected as well.
2020-06-29 21:48:12 +02:00
Sven Klemm
c96216e631 Improve github action stacktrace handling
Check for coredumps and only execute the stracktrace if there are
actually coredumps. This patch also changes the log handling to
always collect logs and upload them cause they might have useful
information even when all steps succeed. Additionally a list
of all failed tests is shown before the regression diff.
This patch also disables fail-fast so a single failed job does
not cancel other jobs still in progress.
2020-06-29 17:50:53 +02:00
Sven Klemm
0d2cc046c2 Ignore continuous_aggs_insert and continuous_aggs_multi on PG11.0
The log output in the isolation tests when running on PG 11.0 seems
to be suppressed and not be recorded leading to a diff in the test
output.
2020-06-24 21:20:17 +02:00
gayyappan
b93b30b0c2 Add counts to compression statistics
Store information related to compressed and uncompressed row
counts after compressing a chunk. This is saved in
compression_chunk_size table.
2020-06-19 15:58:04 -04:00
Sven Klemm
b810dd3780 Add MacOS regression tests 2020-06-19 00:05:37 +02:00
Sven Klemm
32ed2c02d5 Adjust export prefix check for MacOS 2020-06-19 00:05:37 +02:00
Sven Klemm
0bff7dcac3 Run linux regression tests as GitHub action
Since we want to run additional test configurations when triggered
by a push to prerelease_test or by cron but github actions don't
allow a dynamic matrix via yaml configuration we generate the matrix
with a python script. While we could always have the full matrix
and have if checks on every step that would make the actual checks
harder to browse because the workflow will have lots of entries and
only by navigating into the individual jobs would t sit be visible
if a job was actually run.
Additionally we set fail-fast to true for pull requests and false
for other event types.
2020-06-15 00:56:33 +02:00
Sven Klemm
129aa47987 Adjust export prefix check to work with clang
This patch changes the export prefix check to ignore symbols
present in clang builds.
2020-06-15 00:56:33 +02:00
Sven Klemm
835ec5af10 Change export prefix check to work with gcov
This patch adjusts the export prefix check to exclude some symbols
present when using older toolchain and also includes gcov symbols
so export prefix check can be used on coverage enabled builds.
2020-06-10 15:09:31 +02:00
Sven Klemm
c90397fd6a Remove support for PG9.6 and PG10
This patch removes code support for PG9.6 and PG10. In addition to
removing PG96 and PG10 macros the following changes are done:

remove HAVE_INT64_TIMESTAMP since this is always true on PG10+
remove PG_VERSION_SUPPORTS_MULTINODE
2020-06-02 23:48:35 +02:00
Sven Klemm
92bdcf02d1 Fix license check return code
This patch fixes the return code of the license check, previously
it would always return the return code of the apache license check.
Additionally we check for the license in versioned sql base files
too so we dont miss files without license when the versioned sql
file has not been generated.
This patch also adds a missing newline to the jit_load.sql file
so the license check properly detects the license and fixes the
license for the continuous_aggs_union_view test.
2020-06-02 11:13:10 +02:00
Ruslan Fomkin
6bc4765f4d Remove regression tests on PG 9.6 and 10
The first step of removing support for PG 9.6 and 10 is to remove the
regression tests, which run against PostgreSQL versions 9.6 and 10.
2020-05-28 15:14:09 +02:00
Erik Nordström
f64fd4247f Make image build script work with remote Docker
This change tweaks the `docker-build.sh` script to work against remote
Docker daemons. This is useful when testing on minikube and you want
to quickly build and deploy a new image with the current code without
having to push to a remote registry.
2020-05-27 17:31:09 +02:00
Dmitry Simonenko
f7a39c6deb Support SSL with Certificate Based Authentication
Add a tunable way to support SSL connections to data nodes
with optional certificate based authentication.

Switch test suite to use pre-generated certificates.
2020-05-27 17:31:09 +02:00
Matvey Arye
af7d9fe4d6 Add remote txns support (1pc)
This commit adds the ability to open remote transactions
that share transactional semantics with the ongoing local
transaction. This is done by adding txn hooks to the local
transaction that performs txn commands on remote nodes.

This commit adds the 1pc variant of the commit protocol.
A 2-pc variant is going to be added in an upcoming PR.
The 1pc variant exists mostly for performance testing (i.e. how much is the 2pc penalty).
But, there are also cases where 1pc is good enough (non-critical
data and/or data backed by Kafka).

Note that the remote_txn test is not run during sanitizer tests due to
an apparent bug in PostgreSQL. (The test fails on an assertion of a
global variable `AbortStartTime`, which is non-atomic although read
across the ServerLoop and signal handlers.)
2020-05-27 17:31:09 +02:00
Sven Klemm
1df97acfd2 Add 1.7.1 to update test scripts 2020-05-19 15:00:16 +02:00
Sven Klemm
5a6fd603e6 Add 1.7.0 to update test scripts
Due to the changes of the default view behaviour of continuous
aggregates we need a new testsuite for the update tests for 1.7.0

This patch also changes the update test for 9.6 and 10 to run on
cron and 11 and 12 on pull request.
2020-04-21 01:39:00 +02:00
Mats Kindahl
7776062638 Remove pull of TSDB dev tools
The memory leak job pulls TSDB dev tools from bitbucket but only two
files from that repository are needed.

This commit copy the files from the `tsdb-dev-tools` repository, remove
the need to clone the repository, update the memory leak job to use
these files, and remove the two secrets containing the environment
variables `USR` and `PASSWORD`.
2020-04-14 23:12:15 +02:00
Ruslan Fomkin
5cc91e34de Add CRON jobs for PG12
Adds several jobs to run on PG12 as they run on all other PG major
versions in CRON builds. Fixes 32-bits jobs.
2020-04-14 23:12:15 +02:00
Erik Nordström
176b616e37 Refactor insert and copy paths
The INSERT and COPY paths have been refactored to better handle
differences between PostgreSQL versions. In particular, PostgreSQL 12
introduced the new table access mangement (AM) API which ties tuple
table slots to specific table AM implementations, requiring more
careful management of those data structures.

The code tries to adopt the new (PG12) API to the extent possible,
providing compatibility layers and functions for older PostgreSQL
versions where needed.
2020-04-14 23:12:15 +02:00
Ruslan Fomkin
403782a589 Run regression test on latest PG versions
Docker images are build with latest versions of PostgreSQL, thus
updating regression tests to run on the latest PG versions. Fixing
authentication for PG docker images, since it is required after a
recent change in docker-library/postgres@42ce743.

Running isolation tests on new versions of PG produces additional
output:
- Notifications are not missed to print postgres/postgres@ebd4992
- Notifications are prefixed with session name
postgres/postgres@a28e10e
- Timeout cancellation is printed in isolation tests
postgres/postgres@b578404

The expected outputs are modified to succeed on latest PG versions,
while the affected isolation tests are disabled for earlier versions
of PG.
2020-04-02 08:57:28 +02:00
Sven Klemm
d9aa40d36d Merge 9.6 specific update test files 2020-03-21 20:55:06 +01:00
Sven Klemm
b38b0d05b0 Add 1.6.1 to update test scripts 2020-03-21 20:55:06 +01:00
Sven Klemm
442a173ad6 Add 1.5.1 and 1.6.0 to update test scripts 2020-01-20 14:36:22 +01:00
Matvey Arye
707bb9d584 Add compression to update tests
Add a test using cmpressed tables to our extension update
test suite.
2019-11-11 17:10:13 -05:00
Matvey Arye
e575cc2b88 Add tests for updates of catalog tables
PG11 added an optimization where columns that were added by
an ALTER TABLE that had a DEFAULT value did not cause a table
re-write. Instead, those columns are filled with the default
value on read.

But, this mechanism does not apply to catalog tables and does
not work with our catalog scanning code. This tests makes
sure we never have such alters in our updates.
2019-11-07 12:12:54 -05:00