Check for errors in pageserver log after each test.

If there are any unexpected ERRORs or WARNs in pageserver.log after test
finishes, fail the test. This requires whitelisting the errors that *are*
expected in each test, and there's also a few common errors that are
printed by most tests, which are whitelisted in the fixture itself.

With this, we don't need the special abort() call in testing mode, when
compaction or GC fails. Those failures will print ERRORs to the logs,
which will be picked up by this new mechanisms.

A bunch of errors are currently whitelisted that we probably shouldn't
be emitting in the first place, but fixing those is out of scope for this
commit, so I just left FIXME comments on them.
This commit is contained in:
Heikki Linnakangas
2022-11-14 16:03:51 +02:00
committed by Heikki Linnakangas
parent d0105cea1f
commit 46d30bf054
20 changed files with 233 additions and 6 deletions

View File

@@ -17,6 +17,8 @@ def test_readonly_node(neon_simple_env: NeonEnv):
pgmain = env.postgres.create_start("test_readonly_node")
log.info("postgres is running on 'test_readonly_node' branch")
env.pageserver.allowed_errors.append(".*basebackup .* failed: invalid basebackup lsn.*")
main_pg_conn = pgmain.connect()
main_cur = main_pg_conn.cursor()