SIGN IN SIGN UP
milvus-io / milvus UNCLAIMED

Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search

0 0 164 Go

fix: refuse to build QueryCoord target when channel checkpoint is dropped sentinel (#50002)

## Summary
- Block dropped-channel checkpoint sentinels (`Timestamp ==
math.MaxUint64`) at QueryCoord's `UpdateCollectionNextTarget`, before
they can be dispatched to QueryNode as a seek position and trigger a
streaming-dispatcher panic on secondary clusters.
- Add `funcutil.IsDroppedChannelCheckpoint` so the sentinel contract has
a single owner; migrate DataCoord's writer/reader to use it.
- Return `ErrChannelNotAvailable` with explicit "dropped checkpoint
sentinel" detail so the abnormal metadata state is visible in logs and
to clients.

The sentinel is sticky in DataCoord (`UpdateChannelCheckpoint` cannot
overwrite `MaxUint64`); the guard remains in effect until the collection
meta is fully dropped, at which point `GetRecoveryInfoV2` returns
collection-not-found and the existing path releases the collection.

issue: #49996

## Test plan
- [x] `pkg/util/funcutil` unit tests: `TestIsDroppedChannelCheckpoint`
(6 sub-cases) + `TestDroppedChannelCheckpointTimestamp`
- [x] `internal/querycoordv2/meta` `TestTargetManager`: 3 new sub-tests
(`TestUpdateNextTarget_DroppedSentinelRejected`,
`TestUpdateNextTarget_SentinelAmongMultiple`,
`TestUpdateNextTarget_SentinelDoesNotBurnRetries`); all existing
sub-tests still pass
- [x] `make static-check` (0 issues across all 4 phases)
- [ ] CI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
Y
yihao.dai committed
bd70c6b749fd4353475fb9a7c00622ea7f05d5b0
Parent: 34937a5
Committed by GitHub <noreply@github.com> on 5/25/2026, 2:36:32 AM