Skip to content

Commit d50357f

Browse files
shuo-wuinnobead
authored andcommitted
server: Check the work directory in the monitor
Longhorn 4738 Signed-off-by: Shuo Wu <[email protected]>
1 parent 3e25f70 commit d50357f

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

pkg/server/manager.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
type Manager struct {
3232
diskUUID string
3333
diskPath string
34+
workDir string
3435
backingImages map[string]*BackingImage
3536

3637
portRangeMin int32
@@ -65,6 +66,7 @@ func NewManager(diskUUID, diskPath, portRange string, shutdownCh chan error) (*M
6566
m := &Manager{
6667
diskUUID: diskUUID,
6768
diskPath: diskPath,
69+
workDir: workDir,
6870
backingImages: map[string]*BackingImage{},
6971

7072
portRangeMin: start,
@@ -129,6 +131,17 @@ func (m *Manager) startMonitoring() {
129131
}
130132
}
131133
m.lock.RUnlock()
134+
135+
if workDirStat, err := os.Stat(m.workDir); os.IsNotExist(err) || (workDirStat != nil && !workDirStat.IsDir()) {
136+
if err := os.RemoveAll(m.workDir); err != nil {
137+
m.log.WithError(err).Error("Backing Image Manager: detected the backing image work directory becoming invalid but failed to do cleanup")
138+
continue
139+
}
140+
if err := os.Mkdir(m.workDir, 0666); err != nil && !os.IsExist(err) {
141+
m.log.WithError(err).Error("Backing Image Manager: failed to recreate the backing image work directory after cleaning up the invalid one")
142+
continue
143+
}
144+
}
132145
}
133146
if done {
134147
break

0 commit comments

Comments
 (0)