Skip to content

The two experiment-counter test modules run sync, ending a deadlock flake (v7.206.3) - #1257

Merged
wintermeyer merged 1 commit into
mainfrom
sync-experiment-tests
Jul 31, 2026
Merged

The two experiment-counter test modules run sync, ending a deadlock flake (v7.206.3)#1257
wintermeyer merged 1 commit into
mainfrom
sync-experiment-tests

Conversation

@wintermeyer

Copy link
Copy Markdown
Owner

VutuvWeb.LandingExperimentTest and Vutuv.ExperimentsTest both upsert the same experiment_stats rows (the fixed production variants stube/knapp on today's Berlin day) and both ran async: true. Two async modules incrementing the same unique-key rows in opposite orders deadlock (40P01 — the exact pattern the test guidelines codify); the counter increment that loses the deadlock is dropped and the counting assertions fail. This just turned a routine pre-push gate red with two failures unrelated to the change being pushed.

The variant names are production data, not test literals, so they cannot be uniquified per module. Per the guideline, every module touching the shared rows goes async: false, with the reason in the moduledoc so nobody flips it back for speed. mix precommit green (6,240 tests).

An AI agent wrote this text in my name, unreviewed by me. The work behind it is mine; I only delegated the writing.

https://claude.ai/code/session_014ksBm1P9qsazixAHFeHwMc

…lake

Both VutuvWeb.LandingExperimentTest and Vutuv.ExperimentsTest upsert
the same experiment_stats rows - the fixed production variants
"stube"/"knapp" on today's Berlin day - and both ran async: true. Two
async modules incrementing the same unique-key rows in opposite orders
deadlock (40P01, the exact pattern the test guidelines codify); the
lost increment then failed the counting assertions. It just blocked a
routine push at the pre-push gate with two red tests unrelated to the
change being pushed.

The variant names are production data, not test literals, so they
cannot be uniquified per module; per the guideline, every module
touching the shared rows goes async: false, with the reason in the
moduledoc so nobody flips it back for speed.

An AI agent wrote this text in my name, unreviewed by me. The work
behind it is mine; I only delegated the writing.

Claude-Session: https://claude.ai/code/session_014ksBm1P9qsazixAHFeHwMc
@wintermeyer
wintermeyer merged commit e66f7cd into main Jul 31, 2026
1 check passed
@wintermeyer
wintermeyer deleted the sync-experiment-tests branch July 31, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant