////

Async admin operations silently accepting invalid inputs at HTTP layer

An admin API that validates inputs only during async task execution returns HTTP 200 and a client token for requests that will never succeed, forcing callers to poll task status to discover configuration errors. This pattern also allows logically overlapping t

////

Summary#

An admin API that validates inputs only during async task execution returns HTTP 200 and a client token for requests that will never succeed, forcing callers to poll task status to discover configuration errors. This pattern also allows logically overlapping task scopes to be admitted simultaneously, causing duplicate work or conflicts.

Problem#

Admin Heal START accepted nonexistent pool/set selectors, returned 200 with a token, and only failed during asynchronous execution. With a merge policy, running heal for scope/ could simultaneously admit scope/child/ as an independent task.

Solution#

Validate all selectors and scope overlap during HTTP preflight and again at the coordinator before replay registration or task admission. Return HTTP 400 / typed error immediately for invalid inputs; reject intersecting scopes with explicit already_running / overlapping_paths reasons before any state is mutated.

Failure Modes#

  • Double validation (preflight + coordinator) must be kept in sync or one path silently skips checks
  • Race between overlap check and admission if not held under a single lock
  • Durable-only or queued owners may be missed when only checking active tasks

Sources#

  • https://github.com/tensorflow/tensorflow/pull/127204
  • https://github.com/tensorflow/tensorflow/pull/127251
  • https://github.com/huggingface/transformers/pull/48516
  • https://github.com/huggingface/transformers/pull/48155
  • https://github.com/huggingface/transformers/pull/48685
  • https://github.com/huggingface/transformers/pull/40546
  • https://github.com/huggingface/transformers/pull/48720
  • https://github.com/huggingface/transformers/pull/48689
  • https://github.com/huggingface/transformers/pull/44314
  • https://github.com/huggingface/transformers/pull/46419
  • https://github.com/huggingface/transformers/pull/48684
  • 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/ClickHouse/ClickHouse/pull/117998
  • https://github.com/ClickHouse/ClickHouse/pull/117997
  • https://github.com/ClickHouse/ClickHouse/pull/119737
  • https://github.com/ClickHouse/ClickHouse/pull/118005
  • https://github.com/ClickHouse/ClickHouse/pull/118023
  • https://github.com/ClickHouse/ClickHouse/pull/119676
  • https://github.com/ClickHouse/ClickHouse/pull/118183
  • https://github.com/ClickHouse/ClickHouse/pull/118057
  • https://github.com/ClickHouse/ClickHouse/pull/118046
  • https://github.com/ClickHouse/ClickHouse/pull/118108
  • https://github.com/ClickHouse/ClickHouse/pull/118137
  • https://github.com/ClickHouse/ClickHouse/pull/119348
  • https://github.com/ClickHouse/ClickHouse/pull/118297
  • https://github.com/ClickHouse/ClickHouse/pull/118227
  • https://github.com/ClickHouse/ClickHouse/pull/118221
  • https://github.com/rustfs/rustfs/pull/7729
  • https://github.com/rustfs/rustfs/pull/7731
  • https://github.com/rustfs/rustfs/pull/7739
  • https://github.com/rustfs/rustfs/pull/7738
  • https://github.com/rustfs/rustfs/pull/7734
  • https://github.com/rustfs/rustfs/pull/7728
  • https://github.com/rustfs/rustfs/pull/7726
  • https://github.com/rustfs/rustfs/pull/7724
  • https://github.com/rustfs/rustfs/pull/7723
  • https://github.com/rustfs/rustfs/pull/7712
  • https://github.com/rustfs/rustfs/pull/7722
  • https://github.com/rustfs/rustfs/pull/7721
  • https://github.com/rustfs/rustfs/pull/7720
  • https://github.com/rustfs/rustfs/pull/7719
  • https://github.com/rustfs/rustfs/pull/7718
  • mined_at: 2026-09-13T07:06:13Z

Sagwan Revalidation 2026-09-13T07:42:55Z#

  • verdict: ok
  • note: HTTP preflight 이중 검증·단일 락 원칙은 현행 API 설계 모범 사례와 일치하며 시효 없는 패턴이다.

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1