23483 Commits

Author SHA1 Message Date
Zhen Ye
c8073eb90b
fix: panic when double close channel of ack broadcast (#45661)
issue: #45635

Signed-off-by: chyezh <chyezh@outlook.com>
2025-11-19 14:25:05 +08:00
zhenshan.cao
a3b8bcb198
fix: correct default value backfill during AddField (#45634)
issue: https://github.com/milvus-io/milvus/issues/44585

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2025-11-18 23:05:42 +08:00
aoiasd
947c8855f3
feat: support search bm25 with highlight (#44923)
relate: https://github.com/milvus-io/milvus/issues/42589

---------

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-11-18 16:09:39 +08:00
sparknack
16acf8829b
enhance: expr: only prefetch chunks once (#45554)
issue: https://github.com/milvus-io/milvus/issues/43611

Signed-off-by: Shawn Wang <shawn.wang@zilliz.com>
2025-11-18 15:51:41 +08:00
wei liu
7708abd8fe
fix: Prevent deadlock in runComponent when Prepare fails (#45609)
issue: #45068
When component.Prepare() fails (e.g., net listener creation error), the
sign channel was never closed, causing runComponent to block
indefinitely at <-sign. This resulted in the entire process hanging
after logging the error message.

Changes:
- Move close(sign) to defer statement in runComponent goroutine
- Ensures sign channel is always closed regardless of success/failure
- Allows proper error propagation through future.Await() mechanism

---------

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2025-11-18 15:41:40 +08:00
congqixia
b734de5398
fix: [skip e2e] move gRPC server start after service registration in zilliz client tests (#45645)
The tests were failing with "grpc: Server.RegisterService after
Server.Serve" because setupMockServer() was starting the gRPC server
before tests could register their services. gRPC requires all services
to be registered before Server.Serve() is called.

Changes:
- Remove s.Serve() from setupMockServer() helper function
- Add s.Serve() to each test after service registration
- Apply fix consistently to all 6 affected tests:
  * TestZillizClient_Embedding
  * TestZillizClient_Embedding_Error
  * TestZillizClient_Rerank
  * TestZillizClient_Rerank_Error
  * TestNewZilliClient_WithMockServer
  * TestZillizClient_Embedding_EmptyResponse

This follows the correct gRPC server lifecycle:
1. Create server
2. Register services
3. Start serving

Related to #44620
Case: "internal/util/function/models/zilliz TestZillizClient_Rerank"

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-18 15:31:39 +08:00
862103595
a0e2fe78f3
enhance: Add ST_IsValid operator implementation for gis (#45501)
issue:#43427

---------

Signed-off-by: xiejh <862103595@qq.com>
2025-11-18 15:09:40 +08:00
Zhen Ye
caed0fe470
fix: compact the assignment history of channel to decrease the size of assignment recovery info (#45606)
issue: #45210

If the underlying WAL is failed to open, the recovery info size of
streaming coord `streamingcoord-meta/pchannel` will increase fast until
reaching the etcd limitation.
So make a compaction by serverID at assignment history to decrease the
`streamingcoord-meta/pchannel` size.

Signed-off-by: chyezh <chyezh@outlook.com>
2025-11-18 12:47:39 +08:00
Bingyi Sun
1ba75eea62
enhance: skip test_milvus_client_search_json_path_index_default (#45604)
To prevent this issue from blocking other PRs, we are temporarily
disabling this test. A proper fix will be implemented before the 2.6.6
release.

issue: https://github.com/milvus-io/milvus/issues/45511

---------

Signed-off-by: sunby <sunbingyi1992@gmail.com>
2025-11-18 10:54:09 +08:00
congqixia
f8c972a102
fix: update EnableDynamicField and SchemaVersion during collection modification (#45615)
Related to #45614

This commit fixes a bug where certain collection attributes were not
properly updated during collection modification, causing metadata errors
after cluster restart and collection reload failures.

When altering a collection, the `EnableDynamicField` and `SchemaVersion`
attributes were not being persisted to the catalog. This caused
inconsistencies between the in-memory collection metadata and the
persisted state, leading to:
- Dynamic field validation failures after restart
- Collection loading errors
- Metadata state mismatches

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-18 10:05:39 +08:00
wei liu
7aed88113c
enhance: Deduplicate primary keys in upsert request batch (#45249)
issue: #44320

This change adds deduplication logic to handle duplicate primary keys
within a single upsert batch, keeping the last occurrence of each
primary key.

Key changes:
- Add DeduplicateFieldData function to remove duplicate PKs from field
data, supporting both Int64 and VarChar primary keys
- Refactor fillFieldPropertiesBySchema into two separate functions:
validateFieldDataColumns for validation and fillFieldPropertiesOnly for
property filling, improving code clarity and reusability
- Integrate deduplication logic in upsertTask.PreExecute to
automatically deduplicate data before processing
- Add comprehensive unit tests for deduplication with various PK types
(Int64, VarChar) and field types (scalar, vector)
- Add Python integration tests to verify end-to-end behavior

---------

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2025-11-17 21:35:40 +08:00
congqixia
e9506f1d64
fix: Handle default values correctly during compaction for added fields (#45572)
Related to #45543

When a field with a default value is added to a collection, the default
value becomes null after compaction instead of retaining the expected
default value.

**Root Cause**
The `appendValueAt` function in `internal/storage/arrow_util.go`
incorrectly checked if the entire arrow.Array was nil before handling
default values. This meant that default values were only applied when
the array itself was nil, not when individual field values were null
(which is the correct condition).

**Changes**
1. **Early nil check**: Added a guard at the function entry to detect
nil arrow.Array and return an error immediately, as this is an
unexpected condition that should not occur during normal operation.

2. **Refactored default value handling**: Removed the per-type nil array
checks and moved default value logic to handle individual null values
within the array (when `IsNull(idx)` returns true).

3. **Applied to all types**: Updated the logic consistently across all
builder types:
   - BooleanBuilder
   - Int8Builder, Int16Builder, Int32Builder, Int64Builder
   - Float32Builder
   - StringBuilder
   - BinaryBuilder (added default value support for internal $meta json)
   - ListBuilder (removed unnecessary nil check)

---------

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-17 19:03:38 +08:00
aoiasd
96d0e780ac
fix: segcore collection schema update not concurrent safe. (#45337)
relate: https://github.com/milvus-io/milvus/issues/45345

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-11-14 17:51:37 +08:00
Zhen Ye
40e2042728
enhance: add more metrics for DDL framework (#45558)
issue: #43897

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2025-11-14 15:19:37 +08:00
congqixia
0a208d7224
enhance: Move segment loading logic from Go layer to segcore for self-managed loading (#45488)
Related to #45060

Refactor segment loading architecture to make segments autonomously
manage their own loading process, moving the orchestration logic from Go
(segment_loader.go) to C++ (segcore).

**C++ Layer (segcore):**
- Added `SetLoadInfo()` and `Load()` methods to `SegmentInterface` and
implementations
- Implemented `ChunkedSegmentSealedImpl::Load()` with parallel loading
strategy:
  - Separates indexed fields from non-indexed fields
  - Loads indexes concurrently using thread pools
  - Loads field data for non-indexed fields in parallel
- Implemented `SegmentGrowingImpl::Load()` to convert and load field
data
- Extracted `LoadIndexData()` as a reusable utility function in
`Utils.cpp`
- Added `SegmentLoad()` C binding in `segment_c.cpp`

**Go Layer:**
- Added `Load()` method to segment interfaces
- Updated mock implementations and test interfaces
- Integrated new C++ `SegmentLoad()` binding in Go segment wrapper

---------

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-14 11:21:37 +08:00
Spade A
0454cdaab3
fix: remove validateFieldName in dropIndex (#45460)
issue: https://github.com/milvus-io/milvus/issues/45459

This check is unnecessary when dropping index.

---------

Signed-off-by: SpadeA <tangchenjie1210@gmail.com>
2025-11-14 10:17:37 +08:00
Xiaofan
1c69c7fa17
enhance: Upgrade etcd to 3.5.23 (#44666)
related to #44614
fix the issue embedded etcd are not affected by quota config

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2025-11-14 09:47:38 +08:00
cai.zhang
cc07be3c30
fix: Ignore compaction task when from segment is not healthy (#45534)
issue: #45533

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-11-13 23:07:39 +08:00
junjiejiangjjj
102481e53f
feat: Support add_function/alter_function/drop_function (#44895)
https://github.com/milvus-io/milvus/issues/44053

Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>
2025-11-13 20:53:39 +08:00
Gao
d7a5a87b11
enhance: update maxConnections config version (#45546)
issue: #45344

Signed-off-by: chasingegg <chao.gao@zilliz.com>
2025-11-13 17:57:38 +08:00
Feilong Hou
db42b2df75
test: fix partial update chaos checker (#45492)
Issue: #45489 
<fix>: <fix partial update chaos checker>

 On branch feature/partial-update
 Changes to be committed:
	modified:   chaos/checker.py

---------

Signed-off-by: Eric Hou <eric.hou@zilliz.com>
Co-authored-by: Eric Hou <eric.hou@zilliz.com>
2025-11-13 17:29:37 +08:00
Gao
09a3195867
enhance: support max_connections config for remote storage (#45225)
related: https://github.com/milvus-io/milvus/issues/45344

Signed-off-by: chasingegg <chao.gao@zilliz.com>
2025-11-13 15:37:38 +08:00
Spade A
929dc65882
fix: fix index compatibility after upgrade (#45373)
issue: https://github.com/milvus-io/milvus/issues/45380

---------

Signed-off-by: SpadeA <tangchenjie1210@gmail.com>
2025-11-13 12:59:38 +08:00
junjiejiangjjj
50f198e346
feat: Support zilliz models (#45168)
https://github.com/milvus-io/milvus/issues/35856

Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>
2025-11-13 12:55:37 +08:00
XuanYang-cn
e31eec2921
test: Increase PyMilvus version to 2.7.0rc56 for master branch (#45515)
Automated daily bump from pymilvus master branch. Updates
tests/python_client/requirements.txt.

Signed-off-by: XuanYang-cn <xuan.yang@zilliz.com>
2025-11-13 11:33:41 +08:00
groot
e48fe7f820
fix: Fix bulkimport bug for Struct field (#45474)
issue: https://github.com/milvus-io/milvus/issues/45006

Signed-off-by: yhmo <yihua.mo@zilliz.com>
2025-11-13 11:31:41 +08:00
Xiaofan
a9895bb904
enhance: add robust handle etcd servercrash (#45304)
related to #45303
fix milvus pod may restart when etcd pod start

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2025-11-13 10:23:36 +08:00
Chun Han
406fa7b694
fix: failed to get raw data for hybrid index(#45318) (#45411)
related: #45318

Signed-off-by: MrPresent-Han <chun.han@gmail.com>
Co-authored-by: MrPresent-Han <chun.han@gmail.com>
2025-11-13 10:17:37 +08:00
Zhen Ye
b7fb8ed38c
fix: use the right resource key lock for ddl and use new ddl in transfer replica (#45506)
issue: #45452

- alias/rename related DDL should use database level exclusive lock
- alias cannot use as the resource key of lock, use collection name
instead
- transfer replica should use WAL-based framework

Signed-off-by: chyezh <chyezh@outlook.com>
2025-11-12 19:01:38 +08:00
yihao.dai
cabc47ce01
fix: Fix channel not available error and release collection blocking (#45428)
1. Ensure replica creation is idempotent.
2. Prevent currentTarget update when replica is missing.
3. Move the wait-for-release logic into the DDL framework's callback,
and add a timeout to prevent it from blocking the DDL callback
indefinitely.

issue: https://github.com/milvus-io/milvus/issues/45301,
https://github.com/milvus-io/milvus/issues/45274,
https://github.com/milvus-io/milvus/issues/45295

---------

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
2025-11-12 18:55:37 +08:00
XuanYang-cn
28d0755aaa
fix: Set schema properties before broadcast alter collection (#45502)
This causes collection schema properties is empty in datacoord caches,
thus making compaction, indexing, unable to get properties from schema.

See also: #45053, #45159

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-11-12 18:11:41 +08:00
Zhen Ye
8b01af55b9
fix: remove collection meta when drop partition (#45493)
issue: #45476

Signed-off-by: chyezh <chyezh@outlook.com>
2025-11-11 23:39:36 +08:00
cai.zhang
216c576da2
fix: Retain collection early to prevent it from being released before query completion (#45413)
issue: #45314

This PR only ensures that no panic occurs. However, we still need to
provide protection for the delegator handling ongoing query tasks.

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-11-11 20:29:37 +08:00
zhenshan.cao
404797dd46
fix: Set timezone to UTC and ensure tzdata support (#45483)
issue: https://github.com/milvus-io/milvus/issues/45473

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2025-11-11 17:47:36 +08:00
zhuwenxing
6a093887d8
test: fix apikey setting in restful v2 testcases (#45396)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-11-11 17:27:40 +08:00
cai.zhang
d0d908e51d
fix: Fix target segment marked dropped for save stats result twice (#45478)
issue: #45477

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-11-11 17:19:38 +08:00
sparknack
9d75d0393e
enhance: some optimization of scalar field fetching in tiered storage scenarios (#45360)
issue: #43611

---------

Signed-off-by: Shawn Wang <shawn.wang@zilliz.com>
2025-11-11 17:17:41 +08:00
sijie-ni-0214
77dc512b3b
fix: alter collection with alias failed (#45447)
issue: #45397

Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>
2025-11-11 16:05:36 +08:00
Zhen Ye
4797bb6ab2
fix: wrong update timetick of collection meta info (#45461)
issue: #45403, #45463

- fix the Nightly E2E failures.
- fix the wrong update timetick of altering collection to fix the
related load failure.

Signed-off-by: chyezh <chyezh@outlook.com>
2025-11-11 16:01:36 +08:00
cai.zhang
e3c1673191
fix: Fix filter geometry for growing with mmap (#45464)
issue: #45450

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-11-11 15:39:36 +08:00
zhenshan.cao
843b487d1a
fix: Add tzdata dependency to enable IANA Time Zone ID recognition (#45475)
issue: https://github.com/milvus-io/milvus/issues/45473

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2025-11-11 14:43:37 +08:00
Chun Han
69f3aab229
feat: milvus support huawei cloud iam verification(#45298) (#45457)
related: #45298

Signed-off-by: MrPresent-Han <chun.han@gmail.com>
Co-authored-by: MrPresent-Han <chun.han@gmail.com>
2025-11-11 14:41:41 +08:00
congqixia
382b1d7de6
fix: correct field data offset calculation in rerank functions for bulk search (#45444)
Related to #45338

When using bulk vector search in hybrid search with rerank functions,
the output field values for different queries were all equal to the
values returned by the first query, instead of the correct values
belonging to each document ID. The document IDs were correct, but the
entity field values were wrong.

In rerank functions (RRF, weighted, decay, model), when processing
multiple queries in a batch, the `idLocations` stored only the relative
offset within each result set (`idx`), not accounting for the absolute
position within the entire batch. This caused `FillFieldData` to
retrieve field data from the wrong positions, always using offsets
relative to the first query.

This fix ensures that when processing bulk searches with rerank
functions, each result correctly retrieves its corresponding field data
based on the absolute offset within the entire batch, resolving the
issue where all queries returned the first query's field values.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-11 14:39:41 +08:00
XuanYang-cn
dcf490663c
fix: store database event if the key is invalid (#45348)
See also: #45136, #45124

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-11-11 10:55:36 +08:00
congqixia
8d1ea751a6
fix: Support JSON default values in FillFieldData (#45455)
Related to #45445

Previously, FillFieldData for JSON fields would assert and fail when a
default_value was provided, blocking index creation for JSON fields with
default values (including dynamic fields like $meta).

This change enables JSON default value support by:
- Removing the assertion that blocked default values
- Parsing bytes_data into Json objects when default_value is present
- Properly filling data_ array and setting valid_data_ bitset to true
- Maintaining null behavior when no default_value is provided

Impact:
- Fixes index creation failure for JSON fields with default values
- Resolves upgrade issues from 2.5 to 2.6.5 where dynamic fields with
default values couldn't be indexed
- Index builds that were stuck in InProgress state can now complete

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-11 10:35:36 +08:00
Spade A
6f4abab6c8
fix: nextFieldID does not consider STRUCT (#45437)
issue: https://github.com/milvus-io/milvus/issues/45362

Signed-off-by: SpadeA <tangchenjie1210@gmail.com>
2025-11-11 10:31:36 +08:00
zhenshan.cao
45907747e2
feat: Add /livez for Liveness Probes (#45454)
issue: https://github.com/milvus-io/milvus/issues/45443

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2025-11-11 09:51:15 +08:00
Gao
e9a875f7ac
enhance: override index_type while creating segment index (#45416)
issue: #44752

---------

Signed-off-by: chasingegg <chao.gao@zilliz.com>
2025-11-11 07:27:36 +08:00
congqixia
0e1de0073a
enhance: Update tantivy-binding with cargo build result (#45458)
Related to #44988

This PR commit newly updated tantivy-binding.h with cargo build result
which shall passes format check.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-11-10 18:09:36 +08:00
zhuwenxing
b1af0df9f3
test: add struct array mmap testcases (#45309)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-11-10 16:49:36 +08:00