diff --git a/go/store/nbs/file_manifest.go b/go/store/nbs/file_manifest.go index 970e7dcdfe0..07bb41148a0 100644 --- a/go/store/nbs/file_manifest.go +++ b/go/store/nbs/file_manifest.go @@ -296,6 +296,13 @@ func parseManifest(r io.Reader) (manifestContents, error) { } func writeManifest(temp io.Writer, contents manifestContents) error { + if len(contents.nbfVers) == 0 { + return errors.New("runtime error: Noms format version cannot be empty") + } + if contents.lock.IsEmpty() { + return errors.New("runtime error: Lock hash cannot be empty") + } + strs := make([]string, 2*len(contents.specs)+prefixLen) strs[0], strs[1], strs[2], strs[3], strs[4] = StorageVersion, contents.nbfVers, contents.lock.String(), contents.root.String(), contents.gcGen.String() tableInfo := strs[prefixLen:] diff --git a/go/store/nbs/store_test.go b/go/store/nbs/store_test.go index 69c2369a7b5..34ff14c1c3f 100644 --- a/go/store/nbs/store_test.go +++ b/go/store/nbs/store_test.go @@ -35,6 +35,7 @@ import ( "github.com/dolthub/dolt/go/libraries/utils/set" "github.com/dolthub/dolt/go/libraries/utils/test" "github.com/dolthub/dolt/go/store/chunks" + "github.com/dolthub/dolt/go/store/constants" "github.com/dolthub/dolt/go/store/hash" "github.com/dolthub/dolt/go/store/types" "github.com/dolthub/dolt/go/store/util/tempfiles" @@ -49,7 +50,10 @@ func makeTestLocalStore(t *testing.T, maxTableFiles int) (st *NomsBlockStore, no // create a v5 manifest fm, err := getFileManifest(ctx, nomsDir, asyncFlush) require.NoError(t, err) - _, err = fm.Update(ctx, hash.Hash{}, manifestContents{}, &Stats{}, nil) + _, err = fm.Update(ctx, hash.Hash{}, manifestContents{ + nbfVers: constants.FormatDoltString, + lock: journalAddr, // Any valid address will do here + }, &Stats{}, nil) require.NoError(t, err) q = NewUnlimitedMemQuotaProvider()