diff --git a/misc/python/materialize/cli/ci_annotate_errors.py b/misc/python/materialize/cli/ci_annotate_errors.py index 6bed1881c5ad5..1ea2ba2b93007 100644 --- a/misc/python/materialize/cli/ci_annotate_errors.py +++ b/misc/python/materialize/cli/ci_annotate_errors.py @@ -83,6 +83,12 @@ | cannot\ migrate\ from\ catalog | halting\ process: # Rust unwrap | fatal\ runtime\ error: # stack overflow + # glibc heap-consistency aborts: the process dies with SIGABRT and no + # Rust panic, so these lines are the only trace + | (malloc|free|realloc|munmap_chunk)\(\): + | double\ free\ or\ corruption + | corrupted\ (size\ vs\.\ prev_size|double-linked\ list) + | stack\ smashing\ detected | \[SQLsmith\] # Unknown errors are logged | \[SQLancer\] # Unknown errors are logged | \[SQLancer\+\+\] # Unknown errors are logged diff --git a/misc/python/materialize/cli/ci_annotate_errors_test.py b/misc/python/materialize/cli/ci_annotate_errors_test.py index 3ed5454135c19..7f8e74ad36bb9 100644 --- a/misc/python/materialize/cli/ci_annotate_errors_test.py +++ b/misc/python/materialize/cli/ci_annotate_errors_test.py @@ -48,3 +48,20 @@ def test_log_start_marker_absent(tmp_path: Path) -> None: b"environmentd: fatal: setup failure", str(log_file) ) ] + + +def test_glibc_heap_abort_is_an_error(tmp_path: Path) -> None: + log_file = tmp_path / "run.log" + log_file.write_text( + "--- list.td\n" + "malloc(): unsorted double linked list corrupted\n" + "--- load-generator.td\n" + ) + + errors = ci_annotate_errors.get_errors([str(log_file)]) + + assert errors == [ + ci_annotate_errors.ErrorLog( + b"malloc(): unsorted double linked list corrupted", str(log_file) + ) + ]