fix: [3.0] update Knowhere for stable IndexNode ABI - #52755
Conversation
Signed-off-by: marcelo-cjl <marcelo.chen@zilliz.com>
|
[INFO] PR Label Summary by Default
Use /refresh-label to update related check and label manually |
|
[ci-v2-notice] To rerun ci-v2 checks, comment with:
If you have any questions or requests, please contact @zhikunyao. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: liliu-z The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
[approval-status] effective-owner-approvals=1 [liliu-z(review)]; do-not-merge/disable-approve-self=not-required; do-not-merge/doc-need-two-approve=not-required; ignored=[none] |
|
[INFO] PR Label Summary by Default
Use /refresh-label to update related check and label manually |
1 similar comment
|
[INFO] PR Label Summary by Default
Use /refresh-label to update related check and label manually |
pr: #52754
issue: #52723
issue: #52724
issue: #52725
Cherry-pick from master.
What
d85f7080tod7cfd888.IndexNode::BuildAsync()in the public vtable for both Cardinal and non-Cardinal builds.v2.5.111, including its nullable-index fix.Why
In a Cardinal-enabled Milvus build, Knowhere translation units define
KNOWHERE_WITH_CARDINAL, while Milvus core consumers of the same public header do not. The previous conditionalBuildAsync()declaration therefore gave the two DSOs differentIndexNodevtable layouts.Calls intended for
GetIdMap()could dispatch toCount()instead and interpret its integer return as anIdMap&, causing the SIGSEGVs reported in #52723, #52724, and #52725.Knowhere
d7cfd888makes the public vtable independent of that feature macro.Validation