aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2020-04-02 14:33:23 +0200
committerGitHub <noreply@github.com>2020-04-02 14:33:23 +0200
commitaa1dd675707ade1417d1061dea0220e349960558 (patch)
tree39b81089b4ca7c5ca64f63cc8a1e6de296fdfaee
parent448f5a09f05e0d17d58f9433d8fe78403f0ff78d (diff)
parentc73d927144e54ee1067be9793e3abad294f67a4f (diff)
Merge pull request #12800 from vespa-engine/arnej/ensure-consistent-logcontrol-offset
ensure consistent offset in logcontrol file
-rw-r--r--vespalog/src/main/java/com/yahoo/log/VespaLevelControllerRepo.java6
-rw-r--r--vespalog/src/test/java/com/yahoo/log/VespaLevelControllerRepoTest.java10
-rw-r--r--vespalog/src/vespa/log/control-file.cpp2
3 files changed, 10 insertions, 8 deletions
diff --git a/vespalog/src/main/java/com/yahoo/log/VespaLevelControllerRepo.java b/vespalog/src/main/java/com/yahoo/log/VespaLevelControllerRepo.java
index 2cc88855deb..86eba1c019e 100644
--- a/vespalog/src/main/java/com/yahoo/log/VespaLevelControllerRepo.java
+++ b/vespalog/src/main/java/com/yahoo/log/VespaLevelControllerRepo.java
@@ -116,17 +116,17 @@ public class VespaLevelControllerRepo implements LevelControllerRepo {
ctlFile.writeBytes(appPrefix);
}
ctlFile.writeBytes("\n");
- for (int i = appLen; i < maxPrefix; i++) {
+ for (int i = appLen; i < maxPrefix + 2; i++) {
byte space = ' ';
ctlFile.write(space);
}
ctlFile.writeBytes("\n");
ctlFile.setLength(ctlFile.getFilePointer());
- if (ctlFile.getFilePointer() != controlFileHeaderLength) {
+ if (ctlFile.getFilePointer() != (controlFileHeaderLength + 2)) {
System.err.println("internal error, bad header length: "
+ ctlFile.getFilePointer()
+ " (should have been: "
- + controlFileHeaderLength
+ + (controlFileHeaderLength + 2)
+ ")");
}
}
diff --git a/vespalog/src/test/java/com/yahoo/log/VespaLevelControllerRepoTest.java b/vespalog/src/test/java/com/yahoo/log/VespaLevelControllerRepoTest.java
index 3bd4de03f4e..9d04e079f55 100644
--- a/vespalog/src/test/java/com/yahoo/log/VespaLevelControllerRepoTest.java
+++ b/vespalog/src/test/java/com/yahoo/log/VespaLevelControllerRepoTest.java
@@ -62,12 +62,14 @@ public class VespaLevelControllerRepoTest {
RandomAccessFile lcfile = new RandomAccessFile(lcf, "rw");
- lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength);
+ lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength+1);
+ assertEquals(lcfile.readByte(), '\n');
+ lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength+2);
assertEquals(lcfile.readByte(), 'd');
- lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength + 7);
+ lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength+2 + 7);
assertEquals(lcfile.readByte(), ':');
- assertEquals(0, (VespaLevelControllerRepo.controlFileHeaderLength+9) % 4);
- lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength + 9);
+ assertEquals(0, (VespaLevelControllerRepo.controlFileHeaderLength+13) % 4);
+ lcfile.seek(VespaLevelControllerRepo.controlFileHeaderLength + 13);
assertEquals(0x20204f4e, lcfile.readInt());
int off = findControlString(lcfile, "com.yahoo.log.test");
diff --git a/vespalog/src/vespa/log/control-file.cpp b/vespalog/src/vespa/log/control-file.cpp
index 4a4fd36e0ac..a4fe9e98b8d 100644
--- a/vespalog/src/vespa/log/control-file.cpp
+++ b/vespalog/src/vespa/log/control-file.cpp
@@ -69,7 +69,7 @@ ControlFile::ensureHeader()
perror("log::ControlFile write(A) failed");
}
- char spaces[_maxPrefix + 1];
+ char spaces[_maxPrefix + 3];
memset(spaces, ' ', sizeof spaces);
spaces[sizeof(spaces) - 1] = '\0';