From 08f307c3666e3ced0d2e637e2c85cc3b68dc701e Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 4 Mar 2025 17:34:50 -0800 Subject: [PATCH 1/4] Updating NPE bug fixes for #2556 Signed-off-by: Arun Ganesh --- jni/external/faiss | 2 +- jni/external/nmslib | 2 +- .../knn/index/mapper/KNNVectorFieldMapper.java | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/jni/external/faiss b/jni/external/faiss index 0cbc2a885c..2cb37fddba 160000 --- a/jni/external/faiss +++ b/jni/external/faiss @@ -1 +1 @@ -Subproject commit 0cbc2a885cde923d80c4bf9c9d6f4d81665f3f64 +Subproject commit 2cb37fddbae17bf4ac287a6758500d7744d40c71 diff --git a/jni/external/nmslib b/jni/external/nmslib index a2d6624e13..2f4e0d9242 160000 --- a/jni/external/nmslib +++ b/jni/external/nmslib @@ -1 +1 @@ -Subproject commit a2d6624e1315402662025debfdd614b505d9c3ef +Subproject commit 2f4e0d9242e7efc67d37403216fa0e31cc25915e diff --git a/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java b/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java index 0c842f9364..3ec4af98da 100644 --- a/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java +++ b/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java @@ -161,7 +161,15 @@ public static class Builder extends ParametrizedFieldMapper.Builder { b.startObject(n); v.toXContent(b, ToXContent.EMPTY_PARAMS); b.endObject(); - }), m -> m.getMethodComponentContext().getName()); + }), m -> { + if (m == null) { + throw new IllegalArgumentException( + "Mapping update for knn_vector fields is not supported. " + + "Cannot update mapping without the original method configuration." + ); + } + return m.getMethodComponentContext().getName(); + }); protected final Parameter mode = Parameter.restrictedStringParam( KNNConstants.MODE_PARAMETER, From 8b072ae136a79b80a83774689e2ced55cf95c9e6 Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 4 Mar 2025 17:47:28 -0800 Subject: [PATCH 2/4] Updating NPE bug fixes for #2556 Signed-off-by: Arun Ganesh Signed-off-by: Arun Ganesh --- .../org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java b/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java index 3ec4af98da..3b2bbfb74b 100644 --- a/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java +++ b/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java @@ -161,7 +161,8 @@ public static class Builder extends ParametrizedFieldMapper.Builder { b.startObject(n); v.toXContent(b, ToXContent.EMPTY_PARAMS); b.endObject(); - }), m -> { + }), + m -> { if (m == null) { throw new IllegalArgumentException( "Mapping update for knn_vector fields is not supported. " From 25c8a11c6731824addc083ad173d5d8884ffeb3f Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 4 Mar 2025 17:52:34 -0800 Subject: [PATCH 3/4] Updating Changelog for bug fixes for #2556 Signed-off-by: Arun Ganesh Signed-off-by: Arun Ganesh --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index df6e776586..54b62c5d9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Enhancements * Introduce node level circuit breakers for k-NN [#2509](https://github.com/opensearch-project/k-NN/pull/2509) ### Bug Fixes +* Fixing bug to prevent NullPointerException while doing PUT mappings [#2556](https://github.com/opensearch-project/k-NN/issues/2556) ### Infrastructure * Removed JDK 11 and 17 version from CI runs [#1921](https://github.com/opensearch-project/k-NN/pull/1921) * Upgrade min JDK compatibility to JDK 21 [#2422](https://github.com/opensearch-project/k-NN/pull/2422) From 8165c44c3ba9c85ecfbecc2ec2740eaace495574 Mon Sep 17 00:00:00 2001 From: Arun Ganesh Date: Wed, 5 Mar 2025 10:49:23 -0800 Subject: [PATCH 4/4] Applying spotless changes for bug fix Signed-off-by: Arun Ganesh --- .../org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java b/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java index 3b2bbfb74b..3ec4af98da 100644 --- a/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java +++ b/src/main/java/org/opensearch/knn/index/mapper/KNNVectorFieldMapper.java @@ -161,8 +161,7 @@ public static class Builder extends ParametrizedFieldMapper.Builder { b.startObject(n); v.toXContent(b, ToXContent.EMPTY_PARAMS); b.endObject(); - }), - m -> { + }), m -> { if (m == null) { throw new IllegalArgumentException( "Mapping update for knn_vector fields is not supported. "