summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configdefinitions/src/vespa/CMakeLists.txt3
-rw-r--r--configdefinitions/src/vespa/bert-base-embedder.def (renamed from configdefinitions/src/vespa/embedding.bert-base-embedder.def)0
-rw-r--r--configdefinitions/src/vespa/hugging-face-tokenizer.def (renamed from configdefinitions/src/vespa/language.huggingface.hugging-face-tokenizer.def)0
-rw-r--r--container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java8
-rw-r--r--container-search/src/main/java/com/yahoo/search/logging/Spooler.java11
-rw-r--r--container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java29
7 files changed, 48 insertions, 6 deletions
diff --git a/configdefinitions/src/vespa/CMakeLists.txt b/configdefinitions/src/vespa/CMakeLists.txt
index 95e9a31cb73..fd37244b825 100644
--- a/configdefinitions/src/vespa/CMakeLists.txt
+++ b/configdefinitions/src/vespa/CMakeLists.txt
@@ -83,3 +83,6 @@ install_config_definition(onnx-models.def vespa.config.search.core.onnx-models.d
vespa_generate_config(configdefinitions proton.def)
install_config_definition(proton.def vespa.config.search.core.proton.def)
vespa_generate_config(configdefinitions hwinfo.def)
+install_config_definition(hugging-face-embedder.def embedding.huggingface.hugging-face-embedder.def)
+install_config_definition(hugging-face-tokenizer.def language.huggingface.config.hugging-face-tokenizer.def)
+install_config_definition(bert-base-embedder.def embedding.bert-base-embedder.def)
diff --git a/configdefinitions/src/vespa/embedding.bert-base-embedder.def b/configdefinitions/src/vespa/bert-base-embedder.def
index 2d8e840377b..2d8e840377b 100644
--- a/configdefinitions/src/vespa/embedding.bert-base-embedder.def
+++ b/configdefinitions/src/vespa/bert-base-embedder.def
diff --git a/configdefinitions/src/vespa/language.huggingface.hugging-face-tokenizer.def b/configdefinitions/src/vespa/hugging-face-tokenizer.def
index 18b3631e494..18b3631e494 100644
--- a/configdefinitions/src/vespa/language.huggingface.hugging-face-tokenizer.def
+++ b/configdefinitions/src/vespa/hugging-face-tokenizer.def
diff --git a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
index a047d4c0fe1..601da11ab33 100644
--- a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
+++ b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
@@ -2,6 +2,7 @@
package com.yahoo.search.logging;
import com.yahoo.concurrent.DaemonThreadFactory;
+
import java.io.IOException;
import java.time.Clock;
import java.util.concurrent.RejectedExecutionException;
@@ -44,7 +45,7 @@ public abstract class AbstractSpoolingLogger extends AbstractThreadedLogger impl
@Override
public boolean send(LoggerEntry entry) {
- log.log(Level.INFO, "Sending");
+ log.log(Level.FINE, "Sending entry " + entry + " to spooler");
try {
executor.execute(() -> spooler.write(entry));
} catch (RejectedExecutionException e) {
diff --git a/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java b/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java
index ffac8b89860..7dd31d8e1a2 100644
--- a/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java
+++ b/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java
@@ -58,17 +58,19 @@ public class LoggerEntry {
}
public String toString() {
- return serialize();
+ return serialize(false);
}
- public String serialize() {
+ public String serialize() { return serialize(true); }
+
+ public String serialize(boolean encodeBlob) {
try {
Slime slime = new Slime();
Cursor root = slime.setObject();
root.setLong("timestamp", timestamp == null ? 0 : timestamp);
root.setString("query", queryString());
- root.setString("blob", Base64.getEncoder().encodeToString(blob.array()));
+ root.setString("blob", encodeBlob? Base64.getEncoder().encodeToString(blob.array()) : Utf8.toString(blob.array()));
root.setString("track", track());
return Utf8.toString(SlimeUtils.toJsonBytes(slime)); // TODO
diff --git a/container-search/src/main/java/com/yahoo/search/logging/Spooler.java b/container-search/src/main/java/com/yahoo/search/logging/Spooler.java
index 08cfec75fc2..e6d5bfc59ff 100644
--- a/container-search/src/main/java/com/yahoo/search/logging/Spooler.java
+++ b/container-search/src/main/java/com/yahoo/search/logging/Spooler.java
@@ -125,8 +125,15 @@ public class Spooler {
} catch (Exception e) {
handleFailure(f);
} finally {
- if (success && keepSuccessFiles) {
- moveProcessedFile(f, successesPath);
+ if (success) {
+ if (keepSuccessFiles)
+ moveProcessedFile(f, successesPath);
+ else
+ try {
+ Files.delete(f.toPath());
+ } catch (IOException e) {
+ log.log(Level.WARNING, "Unable to delete file " + f, e);
+ }
}
}
}
diff --git a/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java b/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java
index dc8f82e4d5a..b07e576241b 100644
--- a/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java
+++ b/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java
@@ -57,6 +57,35 @@ public class SpoolerTest {
}
@Test
+ public void testSpoolingLoggerCleanup() throws IOException {
+ Path spoolDir = tempDir.resolve("spool");
+
+ Spooler spooler = createSpooler(spoolDir, 1, false, 5);
+
+ TestLogger logger = new TestLogger(spooler);
+ assertTrue(sendEntry(logger, "Yo entry"));
+
+ Path readyPath = spooler.readyPath();
+ Path readyFile1 = readyPath.resolve(spooler.fileNameBase.get() + "-0");
+ waitUntilFileExists(readyFile1);
+
+ // Check content after being moved to ready path
+ assertContent(readyFile1, "Yo entry");
+
+ // Process files (read, transport files)
+ logger.manualRun();
+ assertEquals(1, logger.entriesSent());
+
+ // No files in processing or ready or successes
+ assertProcessedFiles(spooler, 0);
+ assertReadyFiles(spooler, 0);
+ assertSuccessFiles(spooler, 0);
+ assertFailureFiles(spooler, 0);
+
+ assertTrue(spooler.failures().isEmpty(), spooler.failures().toString());
+ }
+
+ @Test
public void testSpoolingManyEntriesPerFile() throws IOException {
Path spoolDir = tempDir.resolve("spool");