check_fatal_messages_in_logs detected a <Fatal> by globbing all clickhouse-server*.log, but then parsed a single log chosen by mtime (pick_latest_file). On multi-server runs (e.g. DatabaseReplicated) the crashed server stops logging first and so has the oldest mtime, while the surviving replicas keep writing. Picking by mtime handed the FuzzerLogParser a replica log with no <Fatal>, which matched no error pattern and produced a useless "Unknown error" / "Lost connection to server" failure instead of naming the crash. Select the log that actually contains the <Fatal> (grep -l on content), falling back to mtime only if no file matches. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
ClickHouse CI System
This directory contains the CI (Continuous Integration) system for ClickHouse based on the praktika framework. The CI system is responsible for automated building, testing, and deployment of ClickHouse.
Directory Structure
-
./ci/praktika/- Core praktika module that provides generic CI functionality. This module is designed to be reusable and must not include any ClickHouse-specific logic. -
./ci/workflows/- Contains workflow definitions that praktika uses to orchestrate CI jobs. This is a special path that praktika recognizes automatically. -
./ci/settings/- Contains project-specific CI settings. This is another special path that praktika recognizes automatically. Settings defined here override default praktika's settings in ./ci/praktika/settings.py::_Settings -
./ci/jobs/- Contains individual job scripts that define the specific tasks to be executed. -
./ci/docker/- Contains Dockerfiles and related resources for building container images used in ClickHouse tests. -
./ci/defs/- Contains additional CI configuration files, including job configurations, Docker configurations, and other definitions.