22377 Commits
Author SHA1 Message Date
zhenshan.caoandGitHub cf91a7929d enhance: support CONAN_CMD override in 3rdparty_build.sh (2.5 backport) (#49271)
Backport of #49107 to 2.5. Since 2.5 uses Conan 1.x, adapts the
`CONAN_CMD` convention with an up-front 1.x version check that tells
developers whose default `conan` is 2.x (master setup) exactly how to
select a 1.x binary, rather than letting confusing 2.x argparse errors
propagate from `conan install`.

pr: #49107
issue: #49106

## Test plan
- [x] `make` with default `conan` already 1.x — unchanged behavior
- [x] `make` with default `conan` 2.x (master setup) — fails fast with
clear error
- [x] `CONAN_CMD=conan-1 make` — builds successfully
- [x] `CONAN_CMD=/nonexistent make` — fails with clear error
- [x] `CONAN_CMD=conan make` (points at 2.x) — fails with clear error

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2026-05-12 19:06:49 -07:00
XuanYang-cnandGitHub 9a5729097b fix: Fast finish compaction when L0Comp hit zero L1/L2 (#47154) (#49379)
See also: #46435, #48907, #48909

pr: #47154

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2026-04-28 14:53:53 +08:00
XuanYang-cnandGitHub 2b5074b98e fix: [2.5] self-heal compaction segment positions and add L0 force-select bypass (#48909)
Compaction inherits StartPosition/DmlPosition from source segments via
getMinPosition without recalculating from actual data. The import
position bug (PR #47276) wrote wrong timestamps on imported segments,
and these wrong positions persist and propagate through compaction. L0
compaction then misses L1/L2 segments due to StartPosition mismatches,
causing zombie L0 segments and silent delete loss.

There is also a latent bug: DmlPosition in mix/clustering compaction
uses getMinPosition, but DmlPosition represents the latest entity
timestamp and should use max.

See also: #46435
pr: #48907

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2026-04-23 10:29:48 +08:00
sthuangandGitHub 4204fb1669 fix: [2.5] preserve wildcard privilege in RBAC backup/restore (#49009)
* Catalog.RestoreRBAC routed IsAnyWord through the
IsPrivilegeNameDefined /else branches and ended up calling
PrivilegeGroupNameForMetastore(""), writing
'grantee-id//PrivilegeGroup'.
* MetaTable.CheckIfRBACRestorable rejected wildcard grants with
'privilege [*] does not exist' before broadcastRestoreRBACV2 ever
reached the catalog, so the catalog fix alone was unreachable on the
in-process restore path.

issue: #48963
pr: #48978

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2026-04-15 11:51:44 +08:00
wei liuandGitHub 156577c855 fix: [2.5] Prevent target update blocking when replica lacks nodes during scaling (#48939)
## Summary

- Port fix from master (#46088, #46348) to 2.5 branch
- When dynamically increasing `replicaNum` (e.g. 1→3 via `load()`
without release), the old implementation required `readyLeaders >=
replicaNum` per channel, causing a permanent deadlock because new
replicas had no nodes yet
- Switches to per-replica channel readiness check: only requires each
channel to have at least one ready leader across all replicas

issue: https://github.com/milvus-io/milvus/issues/48778,
https://github.com/milvus-io/milvus/issues/46087
pr: https://github.com/milvus-io/milvus/pull/46088

## Test plan

- [x] Unit tests for `shouldUpdateCurrentTarget` (88.4% function
coverage)
  - Empty next target → false
  - All channels ready → true
  - Partial channels ready → false
  - No ready delegators → false
- **Replica scaling with empty new replicas** (deadlock fix scenario) →
true
  - Multiple channels across multiple replicas → true
  - Sync failure / ListIndexes failure error paths
- [x] E2E test `TestReplicaScaling1To3`: load(replica=1) →
load(replica=3) without release → search OK
- [x] Verified on v2.5.27 Docker: deadlock reproduced without fix,
resolved with fix
- [x] Verified on v2.6.14 Docker (3SN+3QN): no deadlock (architecture
change avoids the issue)

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

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2026-04-14 16:37:45 +08:00
Buqian ZhengandGitHub 7e3cba9cc9 fix: [2.5] implement PatternMatch for StringIndexMarisa to fix LIKE prefix performance regression (#48905)
StringIndexMarisa (Trie index) was missing SupportPatternMatch() and
PatternMatch() overrides, causing the expression evaluation framework to
bypass the trie's efficient predictive_search-based PrefixMatch and fall
back to O(n) brute-force scan via Reverse_Lookup for every row.

This regression was introduced when the expression framework was
refactored to use UnaryIndexFunc/UnaryIndexFuncForMatch instead of the
old StringIndex::Query(dataset) path. Other index types
(StringIndexSort, InvertedIndexTantivy, BitmapIndex) were updated to
implement these interfaces, but StringIndexMarisa was missed.

Cherry-pick of #48688 to 2.5 branch.

issue: https://github.com/milvus-io/milvus/issues/48685
pr: #48688

---------

Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>
2026-04-14 10:09:42 +08:00
wei liuandGitHub 628d80a65f fix: [2.5] Set replica field in balance plans to prevent panic (#45722) (#48642)
## Summary
- Cherry-pick of #45722 to `2.5` branch
- Fix nil pointer dereference in `MultiTargetBalancer.genSegmentPlan()`
that causes MixCoord crash when using `MultipleTargetBalancer`

pr: https://github.com/milvus-io/milvus/pull/45722
issue: https://github.com/milvus-io/milvus/issues/48054,
https://github.com/milvus-io/milvus/issues/45598

## Root Cause
`genPlanByDistributions()` returns `SegmentAssignPlan` without setting
the `Replica` field. When `PrintNewBalancePlans()` logs these plans,
`SegmentAssignPlan.String()` dereferences the nil `Replica` pointer,
causing SIGSEGV.

## Fix
Set `Replica` field for all plans returned by `genPlanByDistributions()`
before returning from `genSegmentPlan()`.

---------

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2026-04-10 14:43:39 +08:00
sre-ci-robotGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
c8e90858d5 [automated] Bump milvus version to v2.5.27 (#47732)
Bump milvus version to v2.5.27
Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-10 21:28:43 +08:00
congqixiaandGitHub bf8da831ee enhance: Bump milvus & proto version to v2.5.27 (#47686)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
v2.5.27 pkg/v2.5.27
2026-02-09 20:11:53 +08:00
5169960ceb enhance: Upgrade Go to 1.24.12 and update dependencies (#47561)
pr: #47541
- Upgrade Go version from 1.24.11 to 1.24.12 in Dockerfiles and go.mod
files
- Add apt-get upgrade -y to Dockerfiles for security updates
- Upgrade jose2go from v1.6.0 to v1.7.0

Signed-off-by: Li Liu <li.liu@zilliz.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 17:33:52 +08:00
63842957ed fix: [2.5] Use actual data timestamps for imported segment positions (#47372)
This PR (cherry-pick from master cc18864):
1. Modifies the import mechanism to use actual timestamps from the
imported data for segment positions instead of using the channel
checkpoint.
2. Removes initial position setting in AllocImportSegment() - positions
are now set when import completes with actual timestamps.
3. Removes WithTimeRange(ts, ts) from import SyncTask since timestamps
will come from actual data.

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

pr: https://github.com/milvus-io/milvus/pull/47276

---------

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2026-02-03 10:19:54 +08:00
1d619b73d8 fix: [2.5] add authentication to metrics endpoint when authorization enabled (#47405)
## Summary
- Cherry-pick of #47278 (2.6 backport) to the 2.5 branch
- Adds authentication to the metrics endpoint when authorization is
enabled

issue: #46817
master pr: #47277
2.6 pr: #47278

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

Co-Authored-By: Cai Zhang <cai.zhang@zilliz.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Co-authored-by: Cai Zhang <cai.zhang@zilliz.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:25:37 +08:00
sre-ci-robotGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
12a72aae70 [automated] Bump milvus version to v2.5.26 (#47261)
Bump milvus version to v2.5.26
Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-23 08:45:32 +08:00
congqixiaandGitHub a3c3483003 enhance: Bump milvus & proto to v2.5.26 (#47228)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
v2.5.26 pkg/v2.5.26
2026-01-22 15:09:31 +08:00
6bbfe34108 fix: use LoadDeltaData instead of Delete for L0 growing forward (#46657) (#47231)
pr: #46657

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
Signed-off-by: luzhang <luzhang@zilliz.com>
Co-authored-by: congqixia <congqi.xia@zilliz.com>
2026-01-22 13:49:32 +08:00
congqixiaandGitHub ad05bca827 enhance: [2.5] Bump pulsar-client-go to v0.17.0 (#47184)
Related to #46006

Bump pulsar-client-go to v0.17.0 to ship fixed issues in pulsar client.

---------

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2026-01-21 22:39:31 +08:00
81cdba6620 fix: [2.5] azure precheck use a fixed bucket not belong to milvus (#47204)
pr: #47170

Signed-off-by: luzhang <luzhang@zilliz.com>
Co-authored-by: luzhang <luzhang@zilliz.com>
2026-01-21 19:15:31 +08:00
sthuangandGitHub 41c0cef3c4 enhance: [2.5] add security controls for /expr endpoint (#47130)
pr: https://github.com/milvus-io/milvus/pull/46753
related: https://github.com/milvus-io/milvus/issues/46442

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2026-01-19 12:31:30 +08:00
3f301fde6b enhance: Add grpc metadata header for client request time (#44059) (#46946)
Related to #44058

This PR:
- Add common grpc metadata key for client request time
- Add gosdk & milvus inteceptor related logic for this attribute
- Bump go sdk version

pr: #44059

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
Co-authored-by: congqixia <congqi.xia@zilliz.com>
2026-01-12 19:25:27 +08:00
cai.zhangandGitHub c4a03966ef fix: [2.5]Align the options of WKT/WKB conversions to ensure consistent behavior (#46872)
issue: #46823
master pr: #46828

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2026-01-08 12:19:24 +08:00
sre-ci-robotGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
09c9b60f35 [automated] Bump milvus version to v2.5.25 (#46899)
Bump milvus version to v2.5.25
Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-08 10:57:25 +08:00
congqixiaandGitHub 006d71980e enhance: Bump milvus & proto to v2.5.25 (#46871)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
v2.5.25 pkg/v2.5.25
2026-01-07 17:15:25 +08:00
aoiasdandGitHub f134b41cdb fix: [2.5] inverted index null offset file not compacted (#46775) (#46868)
relate: https://github.com/milvus-io/milvus/issues/46774
pr: https://github.com/milvus-io/milvus/pull/46775

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2026-01-07 15:21:03 +08:00
sijie-ni-0214andGitHub 13d7f6f86c fix: Fix textlog load fail 2.5 (#46704)
issue: https://github.com/milvus-io/milvus/issues/46678
master pr: https://github.com/milvus-io/milvus/pull/46697

Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>
2026-01-05 15:53:23 +08:00
sijie-ni-0214andGitHub 9d8edf9497 fix: [2.5] etcd RPC size limit exceeded when dropping collection (#46580)
issue: https://github.com/milvus-io/milvus/issues/46410
master pr: https://github.com/milvus-io/milvus/pull/46414

Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>
2025-12-29 15:57:21 +08:00
yihao.daiandGitHub 1bc7932875 enhance: Explicitly set StartMessageIDInclusive to true for pulsar consumer (#46591)
In pulsar-client-go v0.12, `Consumer.Seek()` **includes** the message at
the seek position by default. However, in v0.17+, the default behavior
changed to **exclude** the seek position message.
This commit explicitly sets `StartMessageIDInclusive=true` when creating
pulsar consumers to ensure consistent seek behavior and prevent
potential message loss after upgrading the Pulsar client library.

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

pr: https://github.com/milvus-io/milvus/pull/46501

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
2025-12-25 14:41:19 +08:00
ddf19de7f7 enhance: [2.5] add config for meta batch (#46514)
### **User description**
add a new config to control meta batch to avoid too large

fix: https://github.com/milvus-io/milvus/issues/44569

pr: https://github.com/milvus-io/milvus/pull/44645


___

### **PR Type**
Enhancement


___

### **Description**
- Replace hardcoded `MaxEtcdTxnNum` constant with configurable parameter

- Add new `maxEtcdTxnNum` configuration to `MetaStoreConfig` with
default value 64

- Update all metastore catalog implementations to use dynamic config
value

- Remove hardcoded constant from `util/constant.go` and update test
expectations


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Hardcoded MaxEtcdTxnNum<br/>constant 128"] -->|Replace with| B["MetaStoreConfig<br/>maxEtcdTxnNum param"]
  B -->|Default value| C["64 operations<br/>per transaction"]
  B -->|Used by| D["DataCoord<br/>Catalog"]
  B -->|Used by| E["RootCoord<br/>Catalog"]
  B -->|Used by| F["StreamingCoord<br/>Catalog"]
  B -->|Used by| G["StreamingNode<br/>Catalog"]
  B -->|Used by| H["SuffixSnapshot<br/>Catalog"]
```



<details><summary><h3>File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>kv_catalog.go</strong><dd><code>Use configurable
MaxEtcdTxnNum in batch operations</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-21f10b97df37f264c572a5bea752c442a1933f1441f658c90c546740d529d536">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>kv_catalog.go</strong><dd><code>Replace hardcoded constant
with dynamic config parameter</code>&nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-ca605f818c1903caba7e8fdd022856403889ed63703161028a6cc0005418aa0b">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>suffix_snapshot.go</strong><dd><code>Use dynamic config for
etcd transaction batch limits</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-41ca5f1e7439335fbd3c198a612f93fb12268bd94e3dc988117f669e45fe462a">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>kv_catalog.go</strong><dd><code>Replace util constant with
paramtable configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-5ddd0cfcc47a07c1f0a5246b63928f018e8267176a6d1d5780712fa986f508c4">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>kv_catalog.go</strong><dd><code>Use configurable
MaxEtcdTxnNum for batch operations</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-4cc762324a9c223f7276776ec29d0476bd70e94eca0e194a1b9e6ee67c7c15f5">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>kv_catalog_test.go</strong><dd><code>Update test
expectations for batch operation counts</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-52a66a32833546c9f5a39c02bf3ee2bd58099a1027e84179021c3e1e91afd6e6">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>kv_catalog_test.go</strong><dd><code>Update tests to use
configurable MaxEtcdTxnNum parameter</code>&nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-bbf08f8d1c8410ed63e07719efe937402b111a27a841f0098552a8a5d8d4574f">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>3 files</summary><table>
<tr>
<td><strong>constant.go</strong><dd><code>Remove hardcoded MaxEtcdTxnNum
constant definition</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-9a2143fe538a654bdd5e1e0967e4e547faea75726e569376a6055bb837c6c683">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>service_param.go</strong><dd><code>Add MaxEtcdTxnNum
parameter to MetaStoreConfig</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-9ef00df6bb7232974dc09d15a0ce2719d977163f41789918e0e4ac7fa4742bf0">+10/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>milvus.yaml</strong><dd><code>Add maxEtcdTxnNum
configuration with default value</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46514/files#diff-6e254e06f0f065af33ea15a45c6538bdb785c064a70f2cc9c7c7369d80065a06">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr></tbody></table>

</details>

___

---------

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
Co-authored-by: Xiaofan <83447078+xiaofan-luan@users.noreply.github.com>
Co-authored-by: xiaofanluan <xiaofan.luan@zilliz.com>
2025-12-24 10:01:19 +08:00
yihao.daiandGitHub 44d915a43b fix: [2.5] Remove stale proxy clients on rewatch etcd (#46491)
### **User description**
AddProxyClients now removes clients not in the new snapshot before
adding new ones. This ensures proper cleanup when ProxyWatcher re-watche
etcd.

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

pr: https://github.com/milvus-io/milvus/pull/46398


___

### **PR Type**
Bug fix


___

### **Description**
- Rename `AddProxyClients` to `SetProxyClients` for clearer semantics

- Implement stale client cleanup before adding new proxy clients

- Remove proxy clients not present in new etcd snapshot

- Update all callers in querycoord and rootcoord servers

- Regenerate mock files with mockery v2.53.3


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["ProxyWatcher detects<br/>etcd change"] -->|calls| B["SetProxyClients<br/>with new snapshot"]
  B -->|removes| C["Stale clients<br/>not in snapshot"]
  C -->|closes| D["Cleanup resources"]
  B -->|adds| E["New proxy clients<br/>from snapshot"]
```



<details><summary><h3>File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><details><summary>3 files</summary><table>
<tr>
<td><strong>proxy_client_manager.go</strong><dd><code>Rename
AddProxyClients to SetProxyClients with cleanup</code>&nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-1a13e14654661bffe70ce626777d527871fcae62361a5fc18b7dca93e66afe1e">+22/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>server.go</strong><dd><code>Update ProxyWatcher to use
SetProxyClients</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-87d7712e6df027656ba9d433fb77b702c185486130879be54204da2b8f092230">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>root_coord.go</strong><dd><code>Update ProxyWatcher
initialization to SetProxyClients</code>&nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-8fab0705c4ddb5f98e5955d3c3013fa795c87237a8525e189c3296d98dcce47f">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>proxy_client_manager_test.go</strong><dd><code>Update test
for SetProxyClients stale removal</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-fb82a84e67ec187c1bfbdc4335c18b504b2f4392758d859e54115684ea8a526d">+26/-10</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>mock_proxy_client_manager.go</strong><dd><code>Regenerate
mock with SetProxyClients method</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-8cc3cfe21d2694f58ebe7f2d44e12c467d9e83ac9edb37bcb6c7262e7b2ca09d">+78/-38</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>mock_proxy_watcher.go</strong><dd><code>Regenerate mock with
mockery v2.53.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-0c22e89cbee68c397abee52e797166fbac754b439eb1304baf53dd207e8f11d2">+9/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mock_global_id_allocator.go</strong><dd><code>Regenerate
mock with mockery v2.53.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-1822c38f0a6c4225134bee554bf518d0b9184040ea5bb3d9e926515ae80655c8">+15/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mock_grpc_client.go</strong><dd><code>Regenerate mock with
mockery v2.53.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-6137f17eb7eef693d72c6181f519f7b1a87669a00f5268cbd7c3399567451e64">+33/-13</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>allocator.go</strong><dd><code>Regenerate mock with mockery
v2.53.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-e2482bb9748ad163ba57c65251355035f45c140f12214cd96cc5da88376fcc39">+26/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mock_factory.go</strong><dd><code>Regenerate mock with
mockery v2.53.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-bc91a5fcdc0bd52eaaaf805d15985fe578debbb2576eb0c97d08e0573d0132e6">+18/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mock_session.go</strong><dd><code>Regenerate mock with
mockery v2.53.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/milvus-io/milvus/pull/46491/files#diff-850f08ed9571fd6f3f84bd846fa29dab2d52be7c8f9d9b358fc667c6970a90e6">+79/-19</a>&nbsp;
</td>

</tr>
</table></details></td></tr></tbody></table>

</details>

___

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
2025-12-23 21:11:19 +08:00
yihao.daiandGitHub c796cc9414 enhance: [2.5] Retry reads from object storage on rate limit error (#46463)
This PR improves the robustness of object storage operations by retrying
both explicit throttling errors (e.g. HTTP 429, SlowDown, ServerBusy).
These errors commonly occur under high concurrency and are typically
recoverable with bounded retries.

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

pr: https://github.com/milvus-io/milvus/pull/46455

---------

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
2025-12-23 11:15:19 +08:00
XuanYang-cnandGitHub 70fc91da90 test: Increase PyMilvus version to 2.5.19rc1 for 2.5 branch (#46485)
Automated daily bump from pymilvus 2.5 branch. Updates
tests/python_client/requirements.txt.

Signed-off-by: XuanYang-cn <xuan.yang@zilliz.com>
2025-12-22 18:39:18 +08:00
zhikunyaoandGitHub da620b7a48 test: upgrade macos15 for 2.5 branch (#46290)
pr: #45778

---------

Signed-off-by: Zhikun Yao <zhikun.yao@zilliz.com>
2025-12-17 11:13:16 +08:00
XiaofanandGitHub 08bc450518 enhance: support configurable estimation on variable legnth field (#46301)
fix: #46300
pr: #46302

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2025-12-12 20:30:40 +08:00
cai.zhangandGitHub 9b4b0cb808 enhance: [2.5] Estimate the taskSlot based on whether scalar or vector index (#46260)
issue: #45186
master pr: #45850

---------

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-12-11 15:43:14 +08:00
sre-ci-robotGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
c4375f3e28 [automated] Bump milvus version to v2.5.24 (#46241)
Bump milvus version to v2.5.24
Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-10 15:33:14 +08:00
congqixiaandGitHub 9e85eb4d04 enhance: Bump milvus & proto version to v2.5.24 (#46134)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
pkg/v2.5.24 v2.5.24
2025-12-05 16:39:11 +08:00
Zhen YeandGitHub 613cd5cb85 fix: milvus fast fail if any component is not ready (#46115)
issue: #45243
pr: #46069

Signed-off-by: chyezh <chyezh@outlook.com>
2025-12-05 15:35:12 +08:00
congqixiaandGitHub 571295e945 enhance: [2.5] Bump go version to 1.24.11 fixing CVE #46077 (#46114)
Cherry-pick from master
pr: #46034 #46049
Fixing CVE-2025-61729

---------

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-12-05 15:31:11 +08:00
congqixiaandGitHub f60211583e enhance: [2.5] Bump golang.org/x/crypto fixing CVE(#45975) (#46112)
Cherry-pick from master
pr: #45975
Related to #45976

Bump golang.org/x/crypto to v0.45.0 fixing CVE-2025-47914

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-12-05 14:33:27 +08:00
Buqian ZhengandGitHub dcc3975f17 fix: [2.5] move cursor after skip index skipped a chunk (#46078)
issue: https://github.com/milvus-io/milvus/issues/46053
pr: https://github.com/milvus-io/milvus/pull/46054

Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>
2025-12-05 13:59:11 +08:00
f1f11b336b fix:fix undefined bahavior when dump snapshot (#45613)
pr: #45611

Signed-off-by: luzhang <luzhang@zilliz.com>
Co-authored-by: luzhang <luzhang@zilliz.com>
2025-12-05 10:49:12 +08:00
XuanYang-cnandGitHub da3ace1325 test: Increase PyMilvus version to 2.5.18 for 2.5 branch (#46031)
Automated daily bump from pymilvus 2.5 branch. Updates
tests/python_client/requirements.txt.

Signed-off-by: XuanYang-cn <xuan.yang@zilliz.com>
2025-12-04 17:33:20 +08:00
cai.zhangandGitHub 6ce2df9944 fix: [2.5]Fix setting default value for geometry by restful (#46058) (#46065)
issue: https://github.com/milvus-io/milvus/issues/46056
master pr: https://github.com/milvus-io/milvus/pull/46058

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-12-04 16:35:11 +08:00
congqixiaandGitHub e70e70699c enhance: [2.5] skip adding stopping node to resource group in handleNodeUp (#45969) (#45982)
Cherry-pick from master
pr: #45969
Related to #45960
Follow-up to #45961

After #45961 ensured that handleNodeUp is always called for nodes
discovered during rewatchNodes (including stopping nodes), this change
adds a safeguard in ResourceManager.handleNodeUp to skip adding stopping
nodes to resource groups.

1. **resource_manager.go**: Add check for IsStoppingState() in
handleNodeUp to prevent stopping nodes from being added to incomingNode
set and assigned to resource groups.

2. **server.go**:
- Delete processed nodes from sessionMap to avoid duplicate processing
in the subsequent loop
   - Add warning logs for stopping state transitions during rewatch

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-12-02 10:23:13 +08:00
congqixiaandGitHub 61c80235dd fix: [2.5] update QueryNode NumEntities metrics when collection has no segments (#45147) (#45981)
Cherry-pick from master
pr: #45147
Related to #44509

Fix a bug where QueryNodeNumEntities metrics were not updated for
collections with zero segments, causing stale metrics when all segments
are flushed or compacted.

The previous implementation used separate loops: one to update size
metrics for all collections, and another to update num entities metrics
only for collections present in the grouped segments map. Collections
with no segments were skipped in the second loop, leaving their
NumEntities metrics stale.

Changes:
- Consolidate size and num entities metric updates into single loop
- Iterate over all collections instead of grouped segments
- Get collection metadata from manager instead of segment instances
- Correctly set NumEntities to 0 for collections with no segments
- Apply the same fix to both growing and sealed segment processing
- Add nil check for collection metadata before processing

This ensures all collection metrics are updated consistently, even when
segment count drops to zero.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-12-02 10:19:10 +08:00
1mmortalandGitHub 0ece57325e fix: [2.5] Correcting the incorrect AllSearchCount value in the result of hybrid_search. (#45843)
Correcting the incorrect AllSearchCount value in the result of
hybrid_search.
#45842

Signed-off-by: 1mmortal <lmzzzzz1@163.com>
2025-12-01 15:11:11 +08:00
congqixiaandGitHub a24a0f11aa fix: [2.5] always call handleNodeUp in rewatchNodes for proper stopping balance (#45964)
Cherry-pick from master
pr: #45961
Related to #45960

When QueryCoord restarts or reconnects to etcd, the rewatchNodes
function previously skipped handleNodeUp for QueryNodes in stopping
state. This caused stopping balance to fail because necessary components
were not initialized:
- Task scheduler executor was not added
- Dist handler was not started
- Node was not registered in resource manager

This fix ensures handleNodeUp is always called for new nodes regardless
of their stopping state, followed by handleNodeStopping if the node is
stopping. This allows the graceful shutdown process to correctly migrate
segments and channels away from stopping nodes.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-12-01 11:11:10 +08:00
Bingyi SunandGitHub ba6198a3b8 fix: Replace json.doc() calls with json.dom_doc() in JsonContainsExpr (#45785)
issue: https://github.com/milvus-io/milvus/issues/45783
pr: https://github.com/milvus-io/milvus/pull/45573

Signed-off-by: sunby <sunbingyi1992@gmail.com>
2025-11-25 20:19:07 +08:00
aoiasdandGitHub 7af4e4076d enhance: [2.5] optimize bm25 stats load. (#45780)
relate: https://github.com/milvus-io/milvus/issues/41424
pr: https://github.com/milvus-io/milvus/pull/44279
https://github.com/milvus-io/milvus/pull/44628

---------

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-11-25 10:39:08 +08:00
cai.zhangandGitHub 74a0363df7 fix: [2.5] Remove the incorrect reset task step (#45771)
issue: #45184

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-11-21 19:47:06 +08:00
Buqian ZhengandGitHub 1fda4bcae4 enhance: [2.5] add ScalarFieldProto& overload to avoid unnecessary copies (#45744)
1. Array.h: Add output_data(ScalarFieldProto&) overload for both Array
and ArrayView classes
2. Use std::string_view instead of std::string for VARCHAR and GEOMETRY
types to avoid extra string copies
3. Call Reserve(length_) before writing to proto objects to reduce
memory reallocations

a simple test shows those optimizations improve the Array of Varchar
bulk_subscript performance by 20%

issue: https://github.com/milvus-io/milvus/issues/45679
pr: https://github.com/milvus-io/milvus/pull/45743

Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>
2025-11-21 12:39:05 +08:00