Skip to content

02435_rollback_cancelled_queries fails 1 run in 4 on the ASan + CAS-S3 lane — INSERTs outlive their clients by more than 15 s #2362

Description

@CarlosFelipeOR

Describe the situation

02435_rollback_cancelled_queries runs three threads for 20 seconds — one inserting, one selecting, one killing clients mid-query. When they stop, the test waits for the server to go quiet. Some INSERTs keep running for more than 15 seconds after that, so the test dumps system.processes and the output no longer matches the reference.

It needs two things at once. ASan alone never fails it. CAS alone almost never does. Together they fail it a quarter of the time:

Lane Failures Passes Rate Query
ASan + CAS-S3 20 25 25.6% list the 20
CAS without ASan 2 142 1.3% list the 2
ASan without CAS 0 359 0% returns nothing
everything else 1 2,026 0% list the 1

Upstream CI runs the same test 122,907 times in 60 days and fails it once — 0.001%. Our rate on that lane is about 25,000 times higher.

This issue:


Actual behavior

The leftover rows in the diff come from system.processes, not from the query log. tests/queries/shell_config.sh:189 polls for 15 seconds, then dumps whatever is still running:

@@ -1,2 +1,48 @@
 1000000
 0
+Row 1:
+──────
+is_initial_query:      1
+query_id:              02435_insert_default_14483-25065-2
+is_cancelled:          0
+memory_usage:          61360603
...

is_cancelled: 0 on every leftover row. These INSERTs were never cancelled — they're simply still going.

All 23 failures, with job and report links: query. Most recent in a release run: 34481990917.


Root cause analysis

⚠️ This section is AI analysis (Claude, via Claude Code), from the CI database and the test source. The rates and the log excerpt are checkable from the links. The mechanism is not established.

Both ingredients slow writes down. CAS writes go to object storage, and ASan slows everything further. An INSERT that was mid-flight when its client died then needs more than 15 seconds to wind down, and the test's wait expires first.

What that guess doesn't explain is Failed 3 out of 3 reruns. Plain slowness should vary between attempts. Failing every rerun points at a run reaching a state and staying in it, which is a different shape.

Two questions would settle it:

  • Are those INSERTs making progress, or are they stuck? system.processes gives elapsed and written_rows over successive polls.
  • Does raising the wait past 15 seconds turn the failures green? If it does, this is lane slowness and belongs in the test. If it doesn't, an INSERT isn't finishing.

Additional context

  • Job: Stateless tests (amd_asan_ubsan, cas s3 storage, parallel, 2/2)
  • Branch: antalya-26.6
  • First seen: 2026-08-04 · Latest: 2026-09-14

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions