From 486df98373f4e7917ab27e439775a5559fee194e Mon Sep 17 00:00:00 2001 From: scottf Date: Thu, 22 Apr 2021 12:47:21 -0400 Subject: [PATCH] close tempfiles, fix path print --- server/filestore.go | 16 +++++++++++++++- server/jetstream.go | 3 ++- server/raft.go | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/server/filestore.go b/server/filestore.go index fd602af0..c1f71a01 100644 --- a/server/filestore.go +++ b/server/filestore.go @@ -235,6 +235,7 @@ func newFileStoreWithCreated(fcfg FileStoreConfig, cfg StreamConfig, created tim if err != nil { return nil, fmt.Errorf("storage directory is not writable") } + tmpfile.Close() os.Remove(tmpfile.Name()) fs := &fileStore{ @@ -3192,7 +3193,12 @@ func (mb *msgBlock) close(sync bool) { if sync { syncAndClose(mb.mfd, mb.ifd) } else { - go syncAndClose(mb.mfd, mb.ifd) + if mb.mfd != nil { + mb.mfd.Close() + } + if mb.ifd != nil { + mb.ifd.Close() + } } mb.mfd = nil mb.ifd = nil @@ -3209,6 +3215,14 @@ func (fs *fileStore) Delete() error { return ErrStoreClosed } fs.Purge() + + pdir := path.Join(fs.fcfg.StoreDir, purgeDir) + // If purge directory still exists then we need to wait + // in place and remove since rename would fail. + if _, err := os.Stat(pdir); err == nil { + os.RemoveAll(pdir) + } + if err := fs.Stop(); err != nil { return err } diff --git a/server/jetstream.go b/server/jetstream.go index 1f7497e2..d447fe3d 100644 --- a/server/jetstream.go +++ b/server/jetstream.go @@ -180,6 +180,7 @@ func (s *Server) enableJetStream(cfg JetStreamConfig) error { if err != nil { return fmt.Errorf("storage directory is not writable") } + tmpfile.Close() os.Remove(tmpfile.Name()) } @@ -199,7 +200,7 @@ func (s *Server) enableJetStream(cfg JetStreamConfig) error { s.Noticef("---------------- JETSTREAM ----------------") s.Noticef(" Max Memory: %s", friendlyBytes(cfg.MaxMemory)) s.Noticef(" Max Storage: %s", friendlyBytes(cfg.MaxStore)) - s.Noticef(" Store Directory: %q", cfg.StoreDir) + s.Noticef(" Store Directory: \"%s\"", cfg.StoreDir) s.Noticef("-------------------------------------------") // Setup our internal subscriptions. diff --git a/server/raft.go b/server/raft.go index a824f229..2795866e 100644 --- a/server/raft.go +++ b/server/raft.go @@ -309,6 +309,7 @@ func (s *Server) bootstrapRaftNode(cfg *RaftConfig, knownPeers []string, allPeer if err != nil { return fmt.Errorf("raft: storage directory is not writable") } + tmpfile.Close() os.Remove(tmpfile.Name()) return writePeerState(cfg.Store, &peerState{knownPeers, expected})