Summary#
If background jobs can observe metadata while a multi-step change is in progress, exposing half-complete state is enough to corrupt data. Reorder the transition so dependent mutation metadata is registered before the new schema becomes visible, or make both steps part of one atomic publish point.
Problem#
A rename operation exposed updated in-memory metadata before the corresponding mutation/conversion state was registered, allowing concurrent merges to read the new name without the required rewrite plan.
Solution#
Ensure mutation or conversion bookkeeping is installed before publishing the new metadata snapshot, and add race-focused tests that exercise the background observer window.
Failure Modes#
- Protecting one code path while other schema-change paths still publish partial state
- Using locks that guard metadata writes but not background snapshot reads
- Lacking deterministic or stress tests, so the race appears fixed but remains latent
Sources#
- https://github.com/tensorflow/tensorflow/pull/122380
- https://github.com/tensorflow/tensorflow/pull/122224
- https://github.com/tensorflow/tensorflow/pull/112655
- https://github.com/tensorflow/tensorflow/pull/122482
- https://github.com/tensorflow/tensorflow/pull/122489
- https://github.com/tensorflow/tensorflow/pull/122570
- https://github.com/tensorflow/tensorflow/pull/122569
- https://github.com/tensorflow/tensorflow/pull/118369
- https://github.com/tensorflow/tensorflow/pull/122483
- https://github.com/tensorflow/tensorflow/pull/122541
- https://github.com/tensorflow/tensorflow/pull/121626
- https://github.com/tensorflow/tensorflow/pull/122187
- https://github.com/tensorflow/tensorflow/pull/122573
- https://github.com/huggingface/transformers/pull/47044
- https://github.com/huggingface/transformers/pull/47042
- https://github.com/huggingface/transformers/pull/45630
- https://github.com/huggingface/transformers/pull/47040
- https://github.com/huggingface/transformers/pull/47041
- https://github.com/huggingface/transformers/pull/46417
- https://github.com/huggingface/transformers/pull/47005
- https://github.com/huggingface/transformers/pull/46933
- https://github.com/microsoft/ML-For-Beginners/pull/1002
- https://github.com/microsoft/ML-For-Beginners/pull/1001
- https://github.com/microsoft/ML-For-Beginners/pull/1000
- https://github.com/microsoft/ML-For-Beginners/pull/994
- https://github.com/microsoft/ML-For-Beginners/pull/991
- https://github.com/microsoft/ML-For-Beginners/pull/990
- https://github.com/microsoft/ML-For-Beginners/pull/989
- https://github.com/microsoft/ML-For-Beginners/pull/987
- https://github.com/microsoft/ML-For-Beginners/pull/986
- https://github.com/ClickHouse/ClickHouse/pull/109323
- https://github.com/ClickHouse/ClickHouse/pull/103480
- https://github.com/ClickHouse/ClickHouse/pull/108511
- https://github.com/ClickHouse/ClickHouse/pull/109318
- https://github.com/ClickHouse/ClickHouse/pull/104822
- https://github.com/ClickHouse/ClickHouse/pull/109082
- https://github.com/ClickHouse/ClickHouse/pull/109269
- https://github.com/ClickHouse/ClickHouse/pull/99654
- https://github.com/ClickHouse/ClickHouse/pull/109322
- https://github.com/ClickHouse/ClickHouse/pull/109321
- https://github.com/ClickHouse/ClickHouse/pull/109320
- https://github.com/ClickHouse/ClickHouse/pull/109319
- https://github.com/ClickHouse/ClickHouse/pull/109224
- https://github.com/vercel/turborepo/pull/13229
- https://github.com/vercel/turborepo/pull/13222
- https://github.com/vercel/turborepo/pull/13221
- https://github.com/vercel/turborepo/pull/13220
- https://github.com/vercel/turborepo/pull/13219
- https://github.com/vercel/turborepo/pull/13205
- https://github.com/vercel/turborepo/pull/13218
- https://github.com/vercel/turborepo/pull/13213
- https://github.com/vercel/turborepo/pull/13212
- https://github.com/vercel/turborepo/pull/13210
- https://github.com/vercel/turborepo/pull/13208
- https://github.com/vercel/turborepo/pull/13211
- mined_at: 2026-07-03T18:03:48Z
Sagwan Revalidation 2026-07-03T18:42:15Z#
- verdict:
ok - note: 원칙·권장안은 여전히 유효하며 최신 동시성 관행과도 부합한다
Sagwan Revalidation 2026-07-04T22:52:25Z#
- verdict:
ok - note: 원자적 공개 원칙과 경합 테스트 권장은 여전히 유효하다.
Sagwan Revalidation 2026-07-06T05:25:11Z#
- verdict:
ok - note: 원자적 메타데이터 공개 원칙은 최신 practice와도 충돌하지 않는다.
Sagwan Revalidation 2026-07-07T10:52:24Z#
- verdict:
ok - note: 원자적 공개와 백그라운드 관찰 경합 방지 권장은 여전히 유효함
Sagwan Revalidation 2026-07-08T17:22:06Z#
- verdict:
ok - note: 원자적 공개와 레이스 테스트 권고는 여전히 최신 실무에 부합함
Sagwan Revalidation 2026-07-10T20:16:49Z#
- verdict:
ok - note: 원자적 공개와 race 테스트 권장은 여전히 유효한 동시성 practice다.
Sagwan Revalidation 2026-07-12T14:18:05Z#
- verdict:
ok - note: 원자적 메타데이터 공개 원칙은 최신 실무에도 유효함
Sagwan Revalidation 2026-07-14T10:51:07Z#
- verdict:
ok - note: [chatgpt 오류] The read operation timed out
Sagwan Revalidation 2026-07-16T11:06:43Z#
- verdict:
ok - note: 원자적 게시 원칙은 여전히 유효하며 최근 검증 이후 변경 징후 없음
Sagwan Revalidation 2026-07-18T12:28:31Z#
- verdict:
ok - note: 원자적 공개 권장안은 여전히 유효하며 최근 검증 뒤 변화 근거가 없음
Sagwan Revalidation 2026-07-20T13:44:46Z#
- verdict:
ok - note: 원자적 publish 원칙과 경합 테스트 권장은 여전히 유효하다.