From ca264db32d4be0416d10cefee146635ecd8bf922 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Wed, 25 Jan 2023 17:26:51 +0100 Subject: [PATCH 1/5] Relax integration test strictness --- vast/integration/integration.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vast/integration/integration.py b/vast/integration/integration.py index 3b68c5147bd..3142ef47bd5 100755 --- a/vast/integration/integration.py +++ b/vast/integration/integration.py @@ -610,7 +610,7 @@ def match(x, names): test_result = Result.FAILURE for i in range(0, args.repetitions): test_result = tester.run(name, definition) - if test_result is Result.TIMEOUT: + if test_result is not Result.SUCCESS: if i < args.repetitions - 1: # Try again. LOGGER.warning( @@ -680,8 +680,8 @@ def main(): "-r", "--repetitions", type=int, - default=3, - help="Repeat count for tests that timed out", + default=10, + help="Number of repetitions for failed tests", ) parser.add_argument( "-l", From b2858a1d559b78a8f708339b59cc013e3b09a6a3 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Wed, 25 Jan 2023 21:45:18 +0100 Subject: [PATCH 2/5] Fix sad path in fixture teardown --- vast/integration/integration.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/vast/integration/integration.py b/vast/integration/integration.py index 3142ef47bd5..95eab63a9a4 100755 --- a/vast/integration/integration.py +++ b/vast/integration/integration.py @@ -364,16 +364,19 @@ def stop(self): LOGGER.debug(f"stopping server fixture: {command}") stop_out = open(self.cwd / "stop.out", "w") stop_err = open(self.cwd / "stop.err", "w") - stop = 0 try: stop = spawn( command, cwd=self.cwd, stdout=stop_out, stderr=stop_err, - ).wait(STEP_TIMEOUT) + ) + stop.wait(STEP_TIMEOUT) except: - stop.kill() + pass + else: + if isinstance(stop, subprocess.Popen): + stop.kill() try: self.process.wait(STEP_TIMEOUT) except: From 118847cdaf04f13319663f6acda467226443080c Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Thu, 26 Jan 2023 09:35:01 +0100 Subject: [PATCH 3/5] Kill lingering subprocesses if node port is blocked --- vast/integration/integration.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vast/integration/integration.py b/vast/integration/integration.py index 95eab63a9a4..7b93839b00f 100755 --- a/vast/integration/integration.py +++ b/vast/integration/integration.py @@ -340,7 +340,14 @@ def __init__( LOGGER.debug(f"starting server fixture: {command}") LOGGER.debug(f"waiting for port {self.port} to be available") if not wait.tcp.closed(self.port, timeout=5): - raise RuntimeError("Port is blocked by another process.\nAborting tests...") + LOGGER.warning( + f"Couldn't aquire port, attempting to kill lingering subprocesses" + ) + signal_subprocs(signal.SIGKILL) + if not wait.tcp.closed(self.port, timeout=5): + raise RuntimeError( + "Port is blocked by another process.\nAborting tests..." + ) self.cwd.mkdir(parents=True) out = open(self.cwd / "out", "w") err = open(self.cwd / "err", "w") From 2f694d8f71b8a184a81a646195390081c1d6dcb5 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Thu, 26 Jan 2023 09:42:57 +0100 Subject: [PATCH 4/5] Disable flaky Arrow Import integration test --- vast/integration/vast_integration_suite.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vast/integration/vast_integration_suite.yaml b/vast/integration/vast_integration_suite.yaml index d2c7560901c..54ca0b05aca 100644 --- a/vast/integration/vast_integration_suite.yaml +++ b/vast/integration/vast_integration_suite.yaml @@ -422,7 +422,7 @@ tests: transformation: python @./misc/scripts/print-arrow.py Arrow Import: condition: version | jq -e '."Apache Arrow"' - tags: [import, arrow] + tags: [import, arrow, disabled] fixture: ServerTester steps: - command: import --batch-encoding=arrow arrow From 05ea9c4d054e216c5f3035943bb7eff24a446d4c Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Thu, 26 Jan 2023 12:47:57 +0100 Subject: [PATCH 5/5] Relax Parquet version bounds check The Parquet plugin has a minimum dependency for version 10, but it should work with later versions too. --- plugins/parquet/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/parquet/CMakeLists.txt b/plugins/parquet/CMakeLists.txt index b222812052f..0bb896b2a99 100644 --- a/plugins/parquet/CMakeLists.txt +++ b/plugins/parquet/CMakeLists.txt @@ -24,7 +24,13 @@ else () set(PARQUET_LIBRARY Parquet::parquet_static) endif () -find_package(Parquet 10.0) +find_package(Parquet) +if (Parquet_VERSION_MAJOR LESS 10) + message( + FATAL_ERROR + "The Parquet plugin requires at least Parquet version 10.0, but found ${PARQUET_VERSION}" + ) +endif () if (NOT Parquet_FOUND) # Compatibility for Arrow < 10. The ParquetConfig.cmake file is in the wrong # location in that case.