mirror of
https://github.com/postgres/postgres.git
synced 2026-10-23 13:29:09 +03:00
On Windows, a backend exiting resets its connection, and the client discards any data not yet read, including the FATAL message of a terminated backend. isolationtester polls one connection at a time, so when it waits on a different session the message can get lost, failing the permutation and the tests that run after it. wait_cleanup in injection_points (down to v17) and slot_creation_error in test_decoding (down to v15) have this pattern, and have been failing randomly in the buildfarm. Let's skip them on Windows. The cause of the instabilities is proving to be tricky to deal with, pointing for example at29992a6a50. This will be tackled later, perhaps with a backpatch (or perhaps with a HEAD-only solution), but it is difficult to be sure at this stage of the work. In theory,a8458f508ashould make a revert of29992a6a50(revert of a revert!) safe on WIN32. Note that278cdea6b9, that has introduced the isolation test slot_creation_error in test_decoding, has mentioned the potential output instability. Author: Zsolt Parragi <zsolt.parragi@percona.com> Author: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/CAN4CZFOoiKa9E4Gnh_OzLk3S5Z6RFyg_oY1e_WddCVYhkpTVow@mail.gmail.com Backpatch-through: 15
88 lines
2.0 KiB
Meson
88 lines
2.0 KiB
Meson
# Copyright (c) 2022-2024, PostgreSQL Global Development Group
|
|
|
|
test_decoding_sources = files(
|
|
'test_decoding.c',
|
|
)
|
|
|
|
if host_system == 'windows'
|
|
test_decoding_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
|
|
'--NAME', 'test_decoding',
|
|
'--FILEDESC', 'test_decoding - example of a logical decoding output plugin',])
|
|
endif
|
|
|
|
test_decoding = shared_module('test_decoding',
|
|
test_decoding_sources,
|
|
kwargs: contrib_mod_args,
|
|
)
|
|
contrib_targets += test_decoding
|
|
|
|
test_decoding_isolation = [
|
|
'mxact',
|
|
'delayed_startup',
|
|
'ondisk_startup',
|
|
'catalog_change_snapshot',
|
|
'concurrent_ddl_dml',
|
|
'oldest_xmin',
|
|
'snapshot_transfer',
|
|
'subxact_without_top',
|
|
'concurrent_stream',
|
|
'twophase_snapshot',
|
|
'skip_snapshot_restore',
|
|
'invalidation_distribution',
|
|
]
|
|
|
|
# slot_creation_error terminates another backend, whose FATAL message can be
|
|
# lost on Windows, making the test unstable there.
|
|
# See https://postgr.es/m/088AB35D-0860-494A-A9CF-8B301543AA51@yandex-team.ru
|
|
if host_system != 'windows'
|
|
test_decoding_isolation += 'slot_creation_error'
|
|
endif
|
|
|
|
tests += {
|
|
'name': 'test_decoding',
|
|
'sd': meson.current_source_dir(),
|
|
'bd': meson.current_build_dir(),
|
|
'regress': {
|
|
'sql': [
|
|
'ddl',
|
|
'xact',
|
|
'rewrite',
|
|
'toast',
|
|
'permissions',
|
|
'decoding_in_xact',
|
|
'decoding_into_rel',
|
|
'binary',
|
|
'prepared',
|
|
'replorigin',
|
|
'time',
|
|
'messages',
|
|
'spill',
|
|
'slot',
|
|
'truncate',
|
|
'stream',
|
|
'stats',
|
|
'twophase',
|
|
'twophase_stream',
|
|
],
|
|
'regress_args': [
|
|
'--temp-config', files('logical.conf'),
|
|
],
|
|
# Disabled because these tests require "wal_level=logical", which
|
|
# typical runningcheck users do not have (e.g. buildfarm clients).
|
|
'runningcheck': false,
|
|
},
|
|
'isolation': {
|
|
'specs': test_decoding_isolation,
|
|
'regress_args': [
|
|
'--temp-config', files('logical.conf'),
|
|
],
|
|
# see above
|
|
'runningcheck': false,
|
|
},
|
|
'tap': {
|
|
'tests': [
|
|
't/001_repl_stats.pl',
|
|
],
|
|
},
|
|
}
|