summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-02-02 08:16:17 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-02-02 08:16:17 +0100
commitafd59b2cde4dd4fe9e09fdeddfc999c807f8aa98 (patch)
tree386fd8686cf0cb2d8d30a58dc5675c7f3a72066d
parentb520261986e8a0444f2902396b15bf059a21004f (diff)
Delegate blocking ops to executor in JobRunner
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java10
-rw-r--r--document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java53
2 files changed, 6 insertions, 57 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
index d6739581c79..73528977166 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
@@ -80,10 +80,12 @@ public class JobRunner extends ControllerMaintainer {
/** Advances each of the ready steps for the given run, or marks it as finished, and stashes it. Public for testing. */
public void advance(Run run) {
if ( ! run.hasFailed()
- && controller().clock().instant().isAfter(run.start().plus(jobTimeout))) {
- jobs.abort(run.id());
- advance(jobs.run(run.id()).get());
- }
+ && controller().clock().instant().isAfter(run.start().plus(jobTimeout)))
+ executors.execute(() -> {
+ jobs.abort(run.id());
+ advance(jobs.run(run.id()).get());
+ });
+
else if (run.readySteps().isEmpty())
executors.execute(() -> finish(run.id()));
else
diff --git a/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java b/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java
deleted file mode 100644
index 67508c61b23..00000000000
--- a/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.document.json;
-
-import com.fasterxml.jackson.core.JsonFactory;
-import com.yahoo.document.DocumentOperation;
-import com.yahoo.document.DocumentPut;
-import com.yahoo.document.DocumentTypeManager;
-import com.yahoo.document.DocumentUpdate;
-import com.yahoo.vespaxmlparser.DocumentFeedOperation;
-import com.yahoo.vespaxmlparser.DocumentUpdateFeedOperation;
-import com.yahoo.vespaxmlparser.FeedOperation;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Parser that supports parsing PUT operation and UPDATE operation.
- *
- * @author dybis
- */
-public class SingleDocumentParser {
-
- private static final JsonFactory jsonFactory = new JsonFactory().disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES);
- private DocumentTypeManager docMan;
-
- public SingleDocumentParser(DocumentTypeManager docMan) {
- this.docMan = docMan;
- }
-
- public FeedOperation parsePut(InputStream inputStream, String docId) {
- return parse(inputStream, docId, DocumentOperationType.PUT);
- }
-
- public FeedOperation parseUpdate(InputStream inputStream, String docId) {
- return parse(inputStream, docId, DocumentOperationType.UPDATE);
- }
-
- private FeedOperation parse(InputStream inputStream, String docId, DocumentOperationType documentOperationType) {
- JsonReader reader = new JsonReader(docMan, inputStream, jsonFactory);
- DocumentOperation documentOperation = reader.readSingleDocument(documentOperationType, docId);
- try {
- inputStream.close();
- } catch (IOException e) {
- throw new IllegalStateException(e);
- }
- if (documentOperationType == DocumentOperationType.PUT) {
- return new DocumentFeedOperation(((DocumentPut) documentOperation).getDocument(), documentOperation.getCondition());
- } else {
- return new DocumentUpdateFeedOperation((DocumentUpdate) documentOperation, documentOperation.getCondition());
- }
- }
-
-}