Sync `FailPoint` with private by egor-click · Pull Request #105332 · ClickHouse/ClickHouse · GitHub
Skip to content

Sync FailPoint with private#105332

Merged
egor-click merged 1 commit into
masterfrom
sync-failpoint-public
May 19, 2026
Merged

Sync FailPoint with private#105332
egor-click merged 1 commit into
masterfrom
sync-failpoint-public

Conversation

@egor-click

@egor-click egor-click commented May 19, 2026

Copy link
Copy Markdown
Contributor

Changelog category (leave one):

  • Not for changelog (changelog entry is not required)

Version info

  • Merged into: 26.5.1.859

Co-authored-by: Cursor <cursoragent@cursor.com>
@egor-click egor-click changed the title Sync with private Sync FailPoint with private May 19, 2026
@clickhouse-gh

clickhouse-gh Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

@clickhouse-gh clickhouse-gh Bot added the pr-not-for-changelog This PR should not be mentioned in the changelog label May 19, 2026
@egor-click egor-click enabled auto-merge May 19, 2026 16:07
@clickhouse-gh

clickhouse-gh Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

LLVM Coverage Report

Metric Baseline Current Δ
Lines 84.10% 84.10% +0.00%
Functions 91.40% 91.40% +0.00%
Branches 76.60% 76.60% +0.00%

Changed lines: 100.00% (7/7) · Uncovered code

Full report · Diff report

@egor-click egor-click added this pull request to the merge queue May 19, 2026
Merged via the queue into master with commit e2499a2 May 19, 2026
163 of 165 checks passed
@egor-click egor-click deleted the sync-failpoint-public branch May 19, 2026 20:32
@robot-ch-test-poll4 robot-ch-test-poll4 added the pr-synced-to-cloud The PR is synced to the cloud repo label May 19, 2026
pull Bot pushed a commit to peijunlin2008/ClickHouse that referenced this pull request Jun 11, 2026
`AddDefaultDatabaseVisitor::visit(ASTSelectQuery &, ASTPtr &)` guards its
WITH-traversal on `select.recursive_with` but then dereferences
`select.with()->children` unconditionally. The parser sets the flag together with
a non-empty WITH expression, but AST mutation after parsing (server-side
`BuzzHouse` fuzzing, in particular) can leave the flag set while the expression
is absent, producing a null pointer dereference inside `IStorageCluster::read`.
Surfaced by `BuzzHouse (amd_tsan)` as `STID: 3440-3393` on PRs ClickHouse#104969 and
ClickHouse#105332 (two unrelated PRs in five days).

Guard the dereference with the actual presence of the WITH expression, matching
the pattern already used in `ASTSelectQuery::formatImpl` and
`QueryTreeBuilder::buildSelectQuery`. Valid `WITH RECURSIVE x AS ...` queries
are unaffected.

Adds a `gtest` that constructs the inconsistent AST shape, runs the visitor, and
asserts no fatal failure; the test reliably aborts on the previous code with the
`boost::intrusive_ptr` null-deref assertion.

Closes ClickHouse#105370

CI report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=105332&sha=ac51d1463d5def7f7ba0354f581e078cbf10d6c6&name_0=PR&name_1=BuzzHouse%20%28amd_tsan%29

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-not-for-changelog This PR should not be mentioned in the changelog pr-synced-to-cloud The PR is synced to the cloud repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants