Skip to content

Conversation

@lmzzzzz1
Copy link
Contributor

fix: #47107

SpadeA-Tang and others added 30 commits November 28, 2025 18:53
…o#45859 (milvus-io#45898)

issue: milvus-io#45728
pr: milvus-io#45730
When mixcoord is in standby mode and shutdown is triggered, the
ProcessActiveStandBy goroutine may panic if context cancellation occurs.
This happens because the error handling didn't check for
context.Canceled errors before panicking.

Changes:
- Add context cancellation check in mix_coord Register() before panic
- Check s.ctx.Err() == context.Canceled and gracefully exit
- Remove unused ForceActiveStandby() function from session_util

This ensures standby mixcoord can shutdown gracefully without panic when
context is cancelled during the standby process.

Signed-off-by: Wei Liu <[email protected]>
issue: milvus-io#45486
pr: milvus-io#45487

This commit refactors the chunk writing system by introducing a
two-phase
approach: size calculation followed by writing to a target. This enables
efficient group chunk creation where multiple fields share a single mmap
region, significantly reducing the number of mmap system calls and VMAs.

- Optimize `mmap` usage: single `mmap` per group chunk instead of per
field
- Split ChunkWriter into two phases:
  - `calculate_size()`: Pre-compute required memory without allocation
  - `write_to_target()`: Write data to a provided ChunkTarget
- Implement `ChunkMmapGuard` for unified mmap region lifecycle
management
  - Handles `munmap` and file cleanup via RAII
  - Shared via `std::shared_ptr` across multiple chunks in a group



---------

Signed-off-by: Shawn Wang <[email protected]>
issue: milvus-io#41435
pr: milvus-io#45929

fix some usage tracking bugs in caching layer.

Signed-off-by: Shawn Wang <[email protected]>
upgrade the etcd client and dependency to 2.5.23
related: milvus-io#45947
pr: milvus-io#44666
issue: milvus-io#44614

Signed-off-by: xiaofanluan <[email protected]>
…ng balance (milvus-io#45963)

Cherry-pick from master
pr: milvus-io#45961 
Related to milvus-io#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 <[email protected]>
issue: milvus-io#45812
pr: milvus-io#45921

- 2.6 proxy will try to forward DWL to 2.5 proxy if streaming service is
not ready

Signed-off-by: chyezh <[email protected]>
Bump milvus & proto version

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

Related to milvus-io#45976

---------

Signed-off-by: Congqi Xia <[email protected]>
…os checker (milvus-io#45986)

master pr: milvus-io#45985



Replace direct self.schema access and describe_collection() calls with
get_schema() method to ensure consistent schema handling with complete
struct_fields information. Also fix FlushChecker error handling and
change schema log level from info to debug.

Signed-off-by: zhuwenxing <[email protected]>
…-io#45992)

Follow up for milvus-io#45971

Update the `milvus/pkg/v2` dependency in both root and client modules to
align with the latest v2.6.7 release, and improve Makefile lint-fix
target logging.

---------

Signed-off-by: Congqi Xia <[email protected]>
…odes (milvus-io#45949) (milvus-io#45991)

issue: milvus-io#45865
pr: milvus-io#45949

- Modified leader_checker.go to include all nodes (RO + RW) instead of
only RW nodes, preventing channel balance from stucking on RO nodes
- Added debug logging in segment_checker.go when no shard leader found
- Enhanced target_observer.go with detailed logging for delegator check
failures to improve debugging visibility
- Fixed integration tests:
- Temporarily disabled partial result counter assertion in
partial_result_on_node_down_test.go pending concurrent issue fix
- Increased transfer channel timeout from 10s to 20s in
manual_rolling_upgrade_test.go to avoid flaky test caused by target
update interval (10s)

---------

Signed-off-by: Wei Liu <[email protected]>
…ilvus-io#46013)

issue: milvus-io#46006
pr: milvus-io#46007

Upgrade apache/pulsar-client-go from v0.15.1 to v0.17.0 to fix send
buffer race condition (apache/pulsar-client-go#1394)

Signed-off-by: Wei Liu <[email protected]>
Bump milvus version to v2.6.7
Signed-off-by: sre-ci-robot [email protected]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
shaoting-huang and others added 11 commits January 14, 2026 10:03
…ilvus-io#46929) (milvus-io#47014)

Cherry-pick from master
pr: milvus-io#46929 
related: milvus-io#46928 

Add segment_storage_version label to track segment counts by storage
version (V1=0, V2=2). This enables monitoring segment distribution
across different storage formats.

Changes:
* Add segmentStorageVersionLabelName constant in metrics.go
* Update DataCoordNumSegments GaugeVec with new label
* Update segMetricMutation struct to track storage version dimension
* Update all WithLabelValues calls in meta.go
* Add unit tests for the new label

Signed-off-by: shaoting-huang <[email protected]>
…us-io#47023)

issue: milvus-io#47016
pr: milvus-io#47022

- the node id of mixcoord may roll back, so it doesn't promise monotonic
incresing.
- use the revision of session to promise it strongly.

Signed-off-by: chyezh <[email protected]>
@sre-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: lmzzzzz1
To complete the pull request process, please assign tedxu after the PR has been reviewed.
You can assign the PR to them by writing /assign @tedxu in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sre-ci-robot sre-ci-robot added size/XXL Denotes a PR that changes 1000+ lines. area/compilation area/dependency Pull requests that update a dependency file area/internal-api area/test sig/testing test/integration integration test labels Jan 16, 2026
@lmzzzzz1 lmzzzzz1 closed this Jan 16, 2026
@sre-ci-robot
Copy link
Contributor

[ci-v2-notice]
Notice: New ci-v2 system is enabled for this PR.

To rerun ci-v2 checks, comment with:

  • /ci-rerun-code-check // for ci-v2/code-check
  • /ci-rerun-build // for ci-v2/build
  • /ci-rerun-ut-integration // for ci-v2/ut-integration, will rerun ci-v2/build
  • /ci-rerun-ut-go // for ci-v2/ut-go, will rerun ci-v2/build
  • /ci-rerun-ut-cpp // for ci-v2/ut-cpp
  • /ci-rerun-ut // for all ci-v2/ut-integration, ci-v2/ut-go, ci-v2/ut-cpp, will rerun ci-v2/build
  • /ci-rerun-e2e-arm // for ci-v2/e2e-arm
  • /ci-rerun-e2e-default // for ci-v2/e2e-default

If you have any questions or requests, please contact @zhikunyao.

@mergify
Copy link
Contributor

mergify bot commented Jan 16, 2026

@lmzzzzz1 Thanks for your contribution. Please submit with DCO, see the contributing guide https://github.com/milvus-io/milvus/blob/master/CONTRIBUTING.md#developer-certificate-of-origin-dco.

@mergify mergify bot added the needs-dco DCO is missing in this pull request. label Jan 16, 2026
@mergify
Copy link
Contributor

mergify bot commented Jan 16, 2026

@lmzzzzz1

Invalid PR Title Format Detected

Your PR submission does not adhere to our required standards. To ensure clarity and consistency, please meet the following criteria:

  1. Title Format: The PR title must begin with one of these prefixes:
  • feat: for introducing a new feature.
  • fix: for bug fixes.
  • enhance: for improvements to existing functionality.
  • test: for add tests to existing functionality.
  • doc: for modifying documentation.
  • auto: for the pull request from bot.
  • build(deps): for dependency updates from Dependabot.
  1. Description Requirement: The PR must include a non-empty description, detailing the changes and their impact.

Required Title Structure:

[Type]: [Description of the PR]

Where Type is one of feat, fix, enhance, test or doc.

Example:

enhance: improve search performance significantly 

Please review and update your PR to comply with these guidelines.

@codecov
Copy link

codecov bot commented Jan 16, 2026

Codecov Report

❌ Patch coverage is 72.29350% with 1231 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.71%. Comparing base (4f080bd) to head (9fa30b3).
⚠️ Report is 346 commits behind head on master.

Files with missing lines Patch % Lines
...rnal/core/src/segcore/ChunkedSegmentSealedImpl.cpp 19.23% 294 Missing ⚠️
...re/storagev2translator/ManifestGroupTranslator.cpp 0.00% 150 Missing ⚠️
internal/core/src/segcore/SegmentLoadInfo.cpp 0.00% 142 Missing ⚠️
internal/core/src/segcore/SegmentGrowingImpl.cpp 4.13% 116 Missing ⚠️
internal/core/src/storage/Util.cpp 23.88% 51 Missing ⚠️
internal/core/src/segcore/segment_c.cpp 37.68% 43 Missing ⚠️
client/milvusclient/iterator.go 72.66% 29 Missing and 12 partials ⚠️
internal/core/src/monitor/jemalloc_stats_c.cpp 0.00% 35 Missing ⚠️
internal/core/src/storage/MemFileManagerImpl.cpp 27.50% 29 Missing ⚠️
internal/coordinator/mix_coord.go 45.00% 19 Missing and 3 partials ⚠️
... and 51 more
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #47108      +/-   ##
==========================================
+ Coverage   76.09%   76.71%   +0.61%     
==========================================
  Files        1884     1920      +36     
  Lines      294531   300333    +5802     
==========================================
+ Hits       224120   230387    +6267     
+ Misses      63009    62511     -498     
- Partials     7402     7435      +33     
Components Coverage Δ
Client 78.17% <78.78%> (+<0.01%) ⬆️
Core 82.58% <82.25%> (-0.15%) ⬇️
Go 75.50% <50.28%> (+1.32%) ⬆️
Files with missing lines Coverage Δ
client/entity/field.go 58.88% <100.00%> (ø)
client/entity/schema.go 100.00% <100.00%> (ø)
client/milvusclient/read_options.go 77.82% <100.00%> (+0.20%) ⬆️
...replication/replicatemanager/channel_replicator.go 76.42% <100.00%> (+0.19%) ⬆️
...nternal/cdc/replication/replicatestream/metrics.go 82.43% <100.00%> (+4.93%) ⬆️
internal/compaction/params.go 94.44% <100.00%> (-0.39%) ⬇️
internal/core/src/common/Chunk.h 75.86% <100.00%> (ø)
internal/core/src/common/ChunkTarget.cpp 100.00% <100.00%> (ø)
internal/core/src/common/ChunkTarget.h 100.00% <100.00%> (ø)
internal/core/src/common/ChunkWriter.h 100.00% <100.00%> (ø)
... and 195 more

... and 600 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gemini-code-assist
Copy link

Summary of Changes

Hello @lmzzzzz1, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers a comprehensive set of updates aimed at improving the system's foundation, build processes, and client-facing capabilities. It ensures compatibility with newer Go versions, refines CI/CD pipelines for greater stability, and introduces new data handling features in the client SDK. The underlying C++ core benefits from optimized memory management, more precise JSON query processing, and a robust cancellation framework, all contributing to a more efficient and reliable system.

Highlights

  • Go Version Update: The Go version used across various Dockerfiles, .env configurations, and client SDK files has been updated from 1.24.4 to 1.24.11.
  • GitHub Actions Cache Improvement: The caching logic for macOS GitHub Actions workflows has been refined. Instead of relying on hashFiles, a more robust method using find and shasum is now employed to calculate hashes for ccache, go mod, and conan dependencies, ensuring better compatibility and reliability.
  • Mergify Configuration Enhancement: Mergify workflows have been updated to incorporate a new WHEN_CODE_CHECK_MACOS_SUCCESS condition, ensuring that macOS code checks are properly considered in pull request merge requirements.
  • Makefile and Build Process Refinements: The Makefile now includes conditional logic to disable use_disk_index on macOS due to aio limitations and sets planparser_rpath_flag accordingly. golangci-lint auto-fix targets have been made more explicit, and a new plan-parser-so target has been introduced to build a shared library for the plan parser, integrating it into C++ build targets. Mock generation for proxy has also been streamlined to use a dedicated YAML configuration.
  • Docker Image and Dependency Updates: Various Dockerfiles now include tzdata for consistent timezone handling. The Kafka image has been switched to bitnamilegacy/kafka:3.1.0, and Milvus and Etcd image versions have been updated across deployment configurations.
  • Client SDK Feature Expansion (Go): The Go client SDK now supports FieldTypeStruct and new MaxSim metric types. A QueryIterator has been implemented to enable paginated query results, including primary key-based pagination logic. The SDK version has been updated to 2.6.2.
  • C++ Core Logic Enhancements: Significant improvements have been made to the C++ core, including better memory management for mmap regions using ChunkMmapGuard, enhanced JSON field querying with improved type handling and Exists() checks, and robust cancellation mechanisms integrated into query execution operators using folly::CancellationToken.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/mac.yaml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request primarily focuses on updating Go and Etcd versions across various Dockerfiles and Jenkins configurations, along with significant enhancements to the Go client SDK to support StructArrayField and introduce a new QueryIterator for paginated query results. It also refines GitHub Actions caching for macOS builds, updates Mergify rules to incorporate new macOS code checks, and modifies Makefile targets for C++ builds to include a new plan-parser-so dependency. Logging configurations are adjusted, and several Milvus configuration parameters are updated, including new MaxSim metric types. A notable change in the C++ core involves refactoring ChunkWriter to support ChunkMmapGuard for memory-mapped files and fixing a bug in VectorArrayChunkWriter related to sliced Arrow ListArrays. Additionally, the RTreeIndex now supports building and loading from growing segments, and the JsonFlatIndex has improved handling for JSON path parsing and mixed numeric types in range queries. The CDC module's controller logic has been refactored to use an event-driven model for replication management, and the GetReplicateInfo API now takes a request object instead of a simple string.

Comment on lines +405 to +416
plan-parser-so:
@echo "Building plan parser shared library ..."
@source $(PWD)/scripts/setenv.sh && \
mkdir -p $(PWD)/internal/core/output/lib $(PWD)/internal/core/output/include && \
go env -w CGO_ENABLED="1" && \
GO111MODULE=on $(GO) build -buildmode=c-shared -o $(PWD)/internal/core/output/lib/libmilvus-planparser.so $(PWD)/internal/parser/planparserv2/cwrapper/wrapper.go && \
mv $(PWD)/internal/core/output/lib/libmilvus-planparser.h $(PWD)/internal/core/output/include/libmilvus-planparser.h && \
cp $(PWD)/internal/parser/planparserv2/cwrapper/milvus_plan_parser.h $(PWD)/internal/core/output/include/ && \
g++ -std=c++17 -shared -fPIC -o $(PWD)/internal/core/output/lib/libmilvus-planparser-cpp.so $(PWD)/internal/parser/planparserv2/cwrapper/milvus_plan_parser.cpp \
-I$(PWD)/internal/core/output/include \
-L$(PWD)/internal/core/output/lib -lmilvus-planparser \
$(planparser_rpath_flag)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The plan-parser-so target is quite complex, involving multiple steps to build a C++ shared library from Go source code. While the commands themselves seem correct, adding comments to explain the purpose of each step would greatly improve its readability and maintainability for future developers. For example, explaining why libmilvus-planparser.so is built from Go first, and then a C++ wrapper libmilvus-planparser-cpp.so is built linking against it.

plan-parser-so:
	@echo "Building plan parser shared library ..."
	@source $(PWD)/scripts/setenv.sh && \
		# Create output directories for the shared library and headers
		mkdir -p $(PWD)/internal/core/output/lib $(PWD)/internal/core/output/include && \
		# Enable CGO for building shared library from Go
		go env -w CGO_ENABLED="1" && \
		# Build the Go code as a C-style shared library (.so)
		GO111MODULE=on $(GO) build -buildmode=c-shared -o $(PWD)/internal/core/output/lib/libmilvus-planparser.so $(PWD)/internal/parser/planparserv2/cwrapper/wrapper.go && \
		# Move the auto-generated C header to the include directory
		mv $(PWD)/internal/core/output/lib/libmilvus-planparser.h $(PWD)/internal/core/output/include/libmilvus-planparser.h && \
		# Copy the manually-written C++ wrapper header
		cp $(PWD)/internal/parser/planparserv2/cwrapper/milvus_plan_parser.h $(PWD)/internal/core/output/include/ && \
		# Compile the C++ wrapper, linking against the Go-generated shared library
		g++ -std=c++17 -shared -fPIC -o $(PWD)/internal/core/output/lib/libmilvus-planparser-cpp.so $(PWD)/internal/parser/planparserv2/cwrapper/milvus_plan_parser.cpp \
			-I$(PWD)/internal/core/output/include \
			-L$(PWD)/internal/core/output/lib -lmilvus-planparser \
			$(planparser_rpath_flag)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/compilation area/dependency Pull requests that update a dependency file area/internal-api area/test do-not-merge/invalid-pr-format needs-dco DCO is missing in this pull request. sig/testing size/XXL Denotes a PR that changes 1000+ lines. test/integration integration test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Kafka image pull failure in dev docker-compose due to Bitnami repository migration