mirror of https://github.com/milvus-io/milvus.git
## Summary Fixes #47540 - **Bug 1 (MixCoord panic):** `compactionInspector.analyzeScheduler` was never initialized in production code. When FloatVector is used as ClusteringKey, the `doAnalyze()` path calls `analyzeScheduler.Enqueue()` on a nil pointer → panic. Fixed by passing `analyzeScheduler` to `newCompactionInspector`. - **Bug 2 (DataNode round-robin panic):** `validateClusteringKey()` had no field type whitelist, so JSON/Bool/Array passed schema validation. During clustering compaction, `NewScalarFieldValue()` panics on unsupported types. Fixed by adding `IsClusteringKeyType()` check to reject unsupported types at collection creation time. ## Test plan - [x] `TestIsClusteringKeyType` — verifies supported/unsupported type classification - [x] `TestClusteringKey` — new sub-tests for JSON, Bool, Array as ClusteringKey (all rejected) - [ ] Existing `TestClusteringKey` sub-tests (normal, multiple keys, vector key) still pass - [ ] `TestCompactionPlanHandler*` tests pass with updated `newCompactionInspector` signature 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Cai Zhang <cai.zhang@zilliz.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| backoff_timer.go | ||
| backoff_timer_test.go | ||
| cache.go | ||
| chan.go | ||
| convension.go | ||
| conversion_test.go | ||
| field_data.go | ||
| field_data_test.go | ||
| field_length_limit.go | ||
| field_schema.go | ||
| float_util.go | ||
| float_util_test.go | ||
| gen_empty_field_data.go | ||
| get_dim.go | ||
| hash.go | ||
| hash_test.go | ||
| heap.go | ||
| heap_test.go | ||
| id_allocator.go | ||
| ids_checker.go | ||
| ids_checker_test.go | ||
| index.go | ||
| index_test.go | ||
| kv_pair_helper.go | ||
| kv_pair_helper_test.go | ||
| lifetime.go | ||
| lifetime_test.go | ||
| map.go | ||
| map_test.go | ||
| multipart_queue.go | ||
| multipart_queue_test.go | ||
| ordered_map.go | ||
| ordered_map_test.go | ||
| pair.go | ||
| schema.go | ||
| schema_test.go | ||
| schema_typed.go | ||
| schema_typed_test.go | ||
| set.go | ||
| set_test.go | ||
| shared_reference.go | ||
| shared_reference_test.go | ||
| skip_list.go | ||
| skip_list_test.go | ||
| string_util.go | ||
| string_util_test.go | ||
| time.go | ||
| time_test.go | ||
| type.go | ||
| version.go | ||
| version_test.go | ||