diff --git a/misc/python/materialize/mzbuild.py b/misc/python/materialize/mzbuild.py index 8f748254385ab..f653b84abc4a9 100644 --- a/misc/python/materialize/mzbuild.py +++ b/misc/python/materialize/mzbuild.py @@ -1340,7 +1340,7 @@ def build_dep(dep): while True: if time.time() > end_time: raise TimeoutError( - f"Timed out in {dep.name} waiting for {[dep2.name for dep2 in dep.dependencies if dep2 not in built_deps]}" + f"Timed out in {dep.name} waiting for {[dep2 for dep2 in dep.dependencies if dep2 not in built_deps]}" ) with lock: if all(dep2 in built_deps for dep2 in dep.dependencies): diff --git a/misc/python/materialize/parallel_workload/action.py b/misc/python/materialize/parallel_workload/action.py index 363c15bc6bd04..2354241694a42 100644 --- a/misc/python/materialize/parallel_workload/action.py +++ b/misc/python/materialize/parallel_workload/action.py @@ -531,6 +531,7 @@ def errors_to_ignore(self, exe: Executor) -> list[str]: "timeout: error trying to connect", "cannot represent decimal value", # parquet limitation "Cannot represent special numeric value", # parquet limitation + "Arrow interval type MonthDayNano to parquet that is not yet implemented", # arrow-rs limitation ] ) if exe.db.complexity == Complexity.DDL: diff --git a/test/mysql-cdc-resumption/mzcompose.py b/test/mysql-cdc-resumption/mzcompose.py index 58819d32cef31..33f700a2ef4e2 100644 --- a/test/mysql-cdc-resumption/mzcompose.py +++ b/test/mysql-cdc-resumption/mzcompose.py @@ -60,6 +60,10 @@ def process(name: str) -> None: if name in ("bin-log-manipulations", "short-bin-log-retention"): return + # TODO: Reenable when database-issues#7683 is fixed + if name == "backup-restore": + return + # clear to avoid issues c.kill("mysql") c.rm("mysql") diff --git a/test/orchestratord/mzcompose.py b/test/orchestratord/mzcompose.py index 1641920d8250e..47dafbd869e47 100644 --- a/test/orchestratord/mzcompose.py +++ b/test/orchestratord/mzcompose.py @@ -1833,6 +1833,7 @@ def workflow_documentation_defaults( "-n", "materialize", "--for=condition=Available", + "--timeout=300s", "deployment/minio", ] ) @@ -1843,6 +1844,7 @@ def workflow_documentation_defaults( "-n", "materialize", "--for=condition=Available", + "--timeout=300s", "deployment/postgres", ] ) diff --git a/test/testdrive/copy-s3-roundtrip-minio.td b/test/testdrive/copy-s3-roundtrip-minio.td index c0a58b1a4ff34..c2979bc844f6b 100644 --- a/test/testdrive/copy-s3-roundtrip-minio.td +++ b/test/testdrive/copy-s3-roundtrip-minio.td @@ -303,25 +303,31 @@ $ s3-verify-data bucket=copytos3 key=parquet_test/3 sort-rows=true # Ensure that at least one file is written even when the input is empty. $ s3-verify-keys bucket=copytos3 prefix-path=parquet_test/4 key-pattern=^parquet_test/4/mz.*\.parquet$ -# Confirm that unsupported types error when writing to s3 parquet -! COPY (SELECT '0 day'::interval) TO 's3://copytos3/parquet_test/5' - WITH ( - AWS CONNECTION = aws_conn, - MAX FILE SIZE = "100MB", - FORMAT = 'parquet' - ); -contains:Arrow interval type MonthDayNano to parquet that is not yet implemented - -# now should succeed since incomplete sentinel was never written -> COPY (SELECT 1::int) TO 's3://copytos3/parquet_test/5' - WITH ( - AWS CONNECTION = aws_conn, - MAX FILE SIZE = "100MB", - FORMAT = 'parquet' - ); - -$ s3-verify-data bucket=copytos3 key=parquet_test/5 sort-rows=true -1 +# TODO: Reenable when https://github.com/MaterializeInc/database-issues/issues/11329 is fixed +# The `!` test below fails at runtime (in the parquet ArrowWriter) after preflight +# has already written the INCOMPLETE sentinel to S3. The sentinel is not cleaned up +# on failure, so the follow-up `>` COPY to the same path sees a non-empty bucket and +# errors with "S3 bucket path is not empty". +# +# # Confirm that unsupported types error when writing to s3 parquet +# ! COPY (SELECT '0 day'::interval) TO 's3://copytos3/parquet_test/5' +# WITH ( +# AWS CONNECTION = aws_conn, +# MAX FILE SIZE = "100MB", +# FORMAT = 'parquet' +# ); +# contains:Arrow interval type MonthDayNano to parquet that is not yet implemented +# +# # now should succeed since incomplete sentinel was never written +# > COPY (SELECT 1::int) TO 's3://copytos3/parquet_test/5' +# WITH ( +# AWS CONNECTION = aws_conn, +# MAX FILE SIZE = "100MB", +# FORMAT = 'parquet' +# ); +# +# $ s3-verify-data bucket=copytos3 key=parquet_test/5 sort-rows=true +# 1 # Tests for decimal / numeric type