summaryrefslogtreecommitdiff
path: root/src/engine/VyOSElasticModernFulltextStorageEngine.php
diff options
context:
space:
mode:
authorYuriy Andamasov <yuriy@vyos.io>2026-05-23 13:47:45 +0300
committerYuriy Andamasov <yuriy@vyos.io>2026-05-23 13:47:45 +0300
commit3a4580e35a0c7a6480aeee9ec4acf90d0fa85326 (patch)
tree3aa689e12ea9764a6883dfc101a712cdf0b9264b /src/engine/VyOSElasticModernFulltextStorageEngine.php
parente0eb6dd6b21c129c775d8bb2bec203ae0d756d0f (diff)
downloadphorge-elasticsearch-modern-3a4580e35a0c7a6480aeee9ec4acf90d0fa85326.tar.gz
phorge-elasticsearch-modern-3a4580e35a0c7a6480aeee9ec4acf90d0fa85326.zip
E7 fixup: move didHealthCheck(true) to HTTP-success boundary in executeRequest()
Previously the success health-check was called inside the JSON-decode try block. This was wrong: a valid HTTP 200 response with non-JSON body (e.g. ES maintenance page) would mark the host as *unhealthy* because JSON parse failure triggered didHealthCheck(false). The host is demonstrably reachable and responding; only the application layer failed. Move didHealthCheck(true) to immediately after list($body) = resolvex() succeeds, before the GET/non-GET branch. Remove the now-unnecessary didHealthCheck(false) from the JSON catch block — only network/timeout failures belong in the health-check false path. 🤖 Generated by [robots](https://vyos.io)
Diffstat (limited to 'src/engine/VyOSElasticModernFulltextStorageEngine.php')
-rw-r--r--src/engine/VyOSElasticModernFulltextStorageEngine.php10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/engine/VyOSElasticModernFulltextStorageEngine.php b/src/engine/VyOSElasticModernFulltextStorageEngine.php
index 211a196..e036082 100644
--- a/src/engine/VyOSElasticModernFulltextStorageEngine.php
+++ b/src/engine/VyOSElasticModernFulltextStorageEngine.php
@@ -261,16 +261,18 @@ abstract class VyOSElasticModernFulltextStorageEngine
throw $ex;
}
+ // HTTP request succeeded — mark the host as healthy regardless of whether
+ // the response body is valid JSON. JSON parse failure is an application
+ // error, not a host-connectivity failure.
+ $host->didHealthCheck(true);
+
if ($method !== 'GET') {
return null;
}
try {
- $decoded = phutil_json_decode($body);
- $host->didHealthCheck(true);
- return $decoded;
+ return phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- $host->didHealthCheck(false);
throw new Exception(
pht('Elasticsearch server returned invalid JSON.'),
0,