summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-29 12:33:16 +0200
committerGitHub <noreply@github.com>2019-04-29 12:33:16 +0200
commit99fb39fadc0a8a25a1423f224cbe2585734ecfa8 (patch)
treea640ec1d1cf0022182647ae9c436143dc16363e9 /vespaclient-container-plugin
parentd26962c2102e9b38004035bb9876326d1c92722f (diff)
parent7d597df5d7ad1d9dcf088b6cc3ddc6d78dd3360c (diff)
Merge pull request #9210 from vespa-engine/balder/let-fatal-messagebus-errors-be-reported-as-server-errors
Report fatal-mbus-errors-as server error.
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java
index b9bbe4f792e..cf22d25b510 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java
@@ -21,12 +21,12 @@ import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol;
import com.yahoo.documentapi.metrics.DocumentApiMetrics;
import com.yahoo.documentapi.metrics.DocumentOperationStatus;
import com.yahoo.documentapi.metrics.DocumentOperationType;
+import com.yahoo.messagebus.ErrorCode;
import com.yahoo.messagebus.StaticThrottlePolicy;
import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.vdslib.VisitorOrdering;
import com.yahoo.vespaclient.ClusterDef;
import com.yahoo.vespaxmlparser.FeedOperation;
-import com.yahoo.vespaxmlparser.VespaXMLFeedReader;
import com.yahoo.yolean.concurrent.ConcurrentResourcePool;
import com.yahoo.yolean.concurrent.ResourceFactory;
import org.apache.commons.lang3.exception.ExceptionUtils;
@@ -108,10 +108,19 @@ public class OperationHandlerImpl implements OperationHandler {
documentAccess.shutdown();
}
+ private static final int HTTP_STATUS_SERVER_ERROR = 500;
private static final int HTTP_STATUS_BAD_REQUEST = 400;
private static final int HTTP_STATUS_INSUFFICIENT_STORAGE = 507;
private static final int HTTP_PRE_CONDIDTION_FAILED = 412;
+ private static boolean isFatalMBusErrorCode(Set<Integer> errorCodes) {
+ for (Integer e : errorCodes) {
+ if (ErrorCode.isFatal(e) && ErrorCode.isMBusError(e)) {
+ return true;
+ }
+ }
+ return false;
+ }
public static int getHTTPStatusCode(Set<Integer> errorCodes) {
if (errorCodes.size() == 1 && errorCodes.contains(DocumentProtocol.ERROR_NO_SPACE)) {
return HTTP_STATUS_INSUFFICIENT_STORAGE;
@@ -119,6 +128,9 @@ public class OperationHandlerImpl implements OperationHandler {
if (errorCodes.contains(DocumentProtocol.ERROR_TEST_AND_SET_CONDITION_FAILED)) {
return HTTP_PRE_CONDIDTION_FAILED;
}
+ if (isFatalMBusErrorCode(errorCodes)) {
+ return HTTP_STATUS_SERVER_ERROR;
+ }
return HTTP_STATUS_BAD_REQUEST;
}