summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-02-04 21:01:51 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-02-04 21:01:51 +0100
commitada83f2de9f275bde7e73ad358f1ffce3b0621d1 (patch)
tree1f09da486fc5e6ba2078af01b68365e5c7373f91 /vespaclient-container-plugin
parent0015af891e6f1c18c19149dbadacb1ba7703817c (diff)
Timeout is not an error when waiting for consistent bubckets
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java7
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java2
2 files changed, 5 insertions, 4 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index 7b2578b4094..b253d8e4c89 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -1075,7 +1075,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
callback.onEnd(response);
switch (code) {
case TIMEOUT:
- if ( ! hasVisitedAnyBuckets()) {
+ if ( ! hasVisitedAnyBuckets() && parameters.getVisitInconsistentBuckets()) {
response.writeMessage("No buckets visited within timeout of " +
parameters.getSessionTimeoutMs() + "ms (request timeout -5s)");
response.respond(Response.Status.GATEWAY_TIMEOUT);
@@ -1084,8 +1084,9 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
case SUCCESS: // Intentional fallthrough.
case ABORTED: // Intentional fallthrough.
if (error.get() == null) {
- if (getProgress() != null && ! getProgress().isFinished())
- response.writeContinuation(getProgress().serializeToString());
+ ProgressToken progress = getProgress() != null ? getProgress() : parameters.getResumeToken();
+ if (progress != null && ! progress.isFinished())
+ response.writeContinuation(progress.serializeToString());
if (getVisitorStatistics() != null)
response.writeDocumentCount(getVisitorStatistics().getDocumentsReturned());
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
index c297c09f906..4728012dd64 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
@@ -284,7 +284,7 @@ public class DocumentV1ApiTest {
assertEquals("[id]", parameters.fieldSet());
assertEquals(10_000, parameters.getSessionTimeoutMs());
parameters.getLocalDataHandler().onMessage(new PutDocumentMessage(new DocumentPut(doc3)), tokens.get(2));
- parameters.getControlHandler().onDone(VisitorControlHandler.CompletionCode.SUCCESS, "Huzzah!");
+ parameters.getControlHandler().onDone(VisitorControlHandler.CompletionCode.TIMEOUT, "Won't care");
});
access.session.expect((update, parameters) -> {
DocumentUpdate expectedUpdate = new DocumentUpdate(doc3.getDataType(), doc3.getId());