From fb2859f195c25386898a99cbdeaf78e51fc2b273 Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Tue, 6 Aug 2024 15:33:40 +0800 Subject: [PATCH 1/7] add log to locate root cause of flaky test Signed-off-by: zane-neo <zaniu@amazon.com> --- .../test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java index 2092b9f4b4..009ab7af64 100644 --- a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java +++ b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java @@ -862,6 +862,7 @@ public static Map parseResponseToMap(Response response) throws IOException { HttpEntity entity = response.getEntity(); assertNotNull(response); String entityString = TestHelper.httpEntityToString(entity); + assertEquals(String.format("response status is not success, raw response is: %s", entityString), 200, response.getStatusLine().getStatusCode()); return StringUtils.gson.fromJson(entityString, Map.class); } From 14c46a381fc86706f5e1c6edd22d2ff524d44956 Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Tue, 6 Aug 2024 15:43:21 +0800 Subject: [PATCH 2/7] format code Signed-off-by: zane-neo <zaniu@amazon.com> --- .../java/org/opensearch/ml/rest/MLCommonsRestTestCase.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java index 009ab7af64..fbe4c998bf 100644 --- a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java +++ b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java @@ -862,7 +862,11 @@ public static Map parseResponseToMap(Response response) throws IOException { HttpEntity entity = response.getEntity(); assertNotNull(response); String entityString = TestHelper.httpEntityToString(entity); - assertEquals(String.format("response status is not success, raw response is: %s", entityString), 200, response.getStatusLine().getStatusCode()); + assertEquals( + String.format("response status is not success, raw response is: %s", entityString), + 200, + response.getStatusLine().getStatusCode() + ); return StringUtils.gson.fromJson(entityString, Map.class); } From eeae9de5f345aae38bfd646045cdf91b82cae231 Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Wed, 7 Aug 2024 08:55:36 +0800 Subject: [PATCH 3/7] Remove assert for response status code Signed-off-by: zane-neo <zaniu@amazon.com> --- .../org/opensearch/ml/rest/MLCommonsRestTestCase.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java index fbe4c998bf..ec74bb7290 100644 --- a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java +++ b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java @@ -862,11 +862,9 @@ public static Map parseResponseToMap(Response response) throws IOException { HttpEntity entity = response.getEntity(); assertNotNull(response); String entityString = TestHelper.httpEntityToString(entity); - assertEquals( - String.format("response status is not success, raw response is: %s", entityString), - 200, - response.getStatusLine().getStatusCode() - ); + if (response.getStatusLine().getStatusCode() != 200) { + log.warn(String.format("response status is not success, raw response is: %s", entityString)); + } return StringUtils.gson.fromJson(entityString, Map.class); } From 82dba04c1b2b0102ad2f23892a4284e98ec9967b Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Wed, 7 Aug 2024 10:40:28 +0800 Subject: [PATCH 4/7] Add model status logging for debugging Signed-off-by: zane-neo <zaniu@amazon.com> --- .../ml/action/models/DeleteModelTransportAction.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java b/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java index 7d18fe18d1..68c0848770 100644 --- a/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java +++ b/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java @@ -16,6 +16,7 @@ import static org.opensearch.ml.utils.MLNodeUtils.createXContentParserFromRegistry; import static org.opensearch.ml.utils.RestActionUtils.getFetchSourceContext; +import java.util.Locale; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; @@ -133,7 +134,7 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<Delete wrappedListener .onFailure( new OpenSearchStatusException( - "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete", + String.format(Locale.ROOT, "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: %s", mlModelState.name()), RestStatus.BAD_REQUEST ) ); @@ -156,7 +157,7 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<Delete wrappedListener .onFailure( new OpenSearchStatusException( - "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete", + String.format(Locale.ROOT, "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: %s", mlModelState.name()) RestStatus.BAD_REQUEST ) ); From cecdf0d0f78e3a1725d7a4afd273fb7824999854 Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Wed, 7 Aug 2024 11:20:29 +0800 Subject: [PATCH 5/7] format code Signed-off-by: zane-neo <zaniu@amazon.com> --- .../action/models/DeleteModelTransportAction.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java b/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java index 68c0848770..de5db926ff 100644 --- a/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java +++ b/plugin/src/main/java/org/opensearch/ml/action/models/DeleteModelTransportAction.java @@ -134,7 +134,12 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<Delete wrappedListener .onFailure( new OpenSearchStatusException( - String.format(Locale.ROOT, "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: %s", mlModelState.name()), + String + .format( + Locale.ROOT, + "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: %s", + mlModelState.name() + ), RestStatus.BAD_REQUEST ) ); @@ -157,7 +162,12 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<Delete wrappedListener .onFailure( new OpenSearchStatusException( - String.format(Locale.ROOT, "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: %s", mlModelState.name()) + String + .format( + Locale.ROOT, + "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: %s", + mlModelState.name() + ), RestStatus.BAD_REQUEST ) ); From 6f9cc41a3cf8fd8c56e3de899a503df77ab0e4ed Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Wed, 7 Aug 2024 18:56:44 +0800 Subject: [PATCH 6/7] Fix failure UTs Signed-off-by: zane-neo <zaniu@amazon.com> --- .../ml/action/models/DeleteModelTransportActionTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/src/test/java/org/opensearch/ml/action/models/DeleteModelTransportActionTests.java b/plugin/src/test/java/org/opensearch/ml/action/models/DeleteModelTransportActionTests.java index cdd3c80184..8c1b1baec7 100644 --- a/plugin/src/test/java/org/opensearch/ml/action/models/DeleteModelTransportActionTests.java +++ b/plugin/src/test/java/org/opensearch/ml/action/models/DeleteModelTransportActionTests.java @@ -383,7 +383,7 @@ public void testDeleteModel_CheckModelState() throws IOException { ArgumentCaptor<Exception> argumentCaptor = ArgumentCaptor.forClass(Exception.class); verify(actionListener).onFailure(argumentCaptor.capture()); assertEquals( - "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete", + "Model cannot be deleted in deploying or deployed state. Try undeploy model first then delete, current model state is: DEPLOYING", argumentCaptor.getValue().getMessage() ); } From 8247a290388652a8256530737ffc3b0af839aaed Mon Sep 17 00:00:00 2001 From: zane-neo <zaniu@amazon.com> Date: Wed, 7 Aug 2024 19:40:51 +0800 Subject: [PATCH 7/7] change logs format to log all remote calls Signed-off-by: zane-neo <zaniu@amazon.com> --- .../opensearch/ml/rest/MLCommonsRestTestCase.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java index ec74bb7290..2ee41b7a13 100644 --- a/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java +++ b/plugin/src/test/java/org/opensearch/ml/rest/MLCommonsRestTestCase.java @@ -862,9 +862,16 @@ public static Map parseResponseToMap(Response response) throws IOException { HttpEntity entity = response.getEntity(); assertNotNull(response); String entityString = TestHelper.httpEntityToString(entity); - if (response.getStatusLine().getStatusCode() != 200) { - log.warn(String.format("response status is not success, raw response is: %s", entityString)); - } + log + .info( + String + .format( + "request uri is: %s, response status is: %s, raw response is: %s", + response.getRequestLine().getUri(), + response.getStatusLine().getStatusCode(), + entityString + ) + ); return StringUtils.gson.fromJson(entityString, Map.class); }