Skip to content

Commit

Permalink
server: try updating storage schema during bootstrap
Browse files Browse the repository at this point in the history
  • Loading branch information
serathius committed Jul 9, 2021
1 parent 9c4e8f1 commit 54ee5c3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
9 changes: 9 additions & 0 deletions server/etcdserver/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ func bootstrap(cfg config.ServerConfig) (b *bootstrappedServer, err error) {
if terr := fileutil.TouchDirAll(cfg.MemberDir()); terr != nil {
return nil, fmt.Errorf("cannot access member directory: %v", terr)
}
boostrapStorageSchema(cfg.Logger, be)
b.prt = prt
b.ci = ci
b.st = st
Expand Down Expand Up @@ -340,6 +341,14 @@ func bootstrapWithWAL(cfg config.ServerConfig, st v2store.Store, be backend.Back
return r, nil
}

func boostrapStorageSchema(lg *zap.Logger, be backend.Backend) {
err := schema.UpdateStorageSchema(lg, be.BatchTx())
if err != nil {
// Can fail as it requires all fields to be set. Fields introduced in v3.5 will be set only after snapshot.
lg.Warn("failed to update storage version, will try again after first wal snapshot", zap.Error(err))
}
}

func bootstrapRaftFromCluster(cfg config.ServerConfig, cl *membership.RaftCluster, ids []types.ID) *bootstrappedRaft {
member := cl.MemberByName(cfg.Name)
id := member.ID
Expand Down
2 changes: 2 additions & 0 deletions server/etcdserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -2136,6 +2136,8 @@ func (s *EtcdServer) snapshot(snapi uint64, confState raftpb.ConfState) {
"saved snapshot",
zap.Uint64("snapshot-index", snap.Metadata.Index),
)
// Update storage schema after snapshot as fields introduced in v3.5 should be set.
// Remove in v3.7
s.updateStorageSchema.Do(func() {
err := schema.UpdateStorageSchema(s.lg, s.be.BatchTx())
if err != nil {
Expand Down

0 comments on commit 54ee5c3

Please sign in to comment.