mmm: create directory before creating the lockfile.

This commit is contained in:
fiatjaf
2025-11-22 10:24:58 -03:00
parent 98959e73e7
commit 8161bd9ad1

View File

@@ -56,6 +56,12 @@ func (b *MultiMmapManager) Init() error {
b.Logger = &nopLogger b.Logger = &nopLogger
} }
// create directory if it doesn't exist
dbpath := filepath.Join(b.Dir, "mmmm")
if err := os.MkdirAll(dbpath, 0755); err != nil {
return fmt.Errorf("failed to create directory %s: %w", dbpath, err)
}
// create lockfile to prevent multiple instances // create lockfile to prevent multiple instances
lockfilePath := filepath.Join(b.Dir, "mmmm.lock") lockfilePath := filepath.Join(b.Dir, "mmmm.lock")
if _, err := os.OpenFile(lockfilePath, os.O_CREATE|os.O_EXCL|os.O_RDWR, 0644); err != nil { if _, err := os.OpenFile(lockfilePath, os.O_CREATE|os.O_EXCL|os.O_RDWR, 0644); err != nil {
@@ -65,12 +71,6 @@ func (b *MultiMmapManager) Init() error {
return fmt.Errorf("failed to create lockfile %s: %w", lockfilePath, err) return fmt.Errorf("failed to create lockfile %s: %w", lockfilePath, err)
} }
// create directory if it doesn't exist
dbpath := filepath.Join(b.Dir, "mmmm")
if err := os.MkdirAll(dbpath, 0755); err != nil {
return fmt.Errorf("failed to create directory %s: %w", dbpath, err)
}
// open a huge mmapped file // open a huge mmapped file
b.mmapfPath = filepath.Join(b.Dir, "events") b.mmapfPath = filepath.Join(b.Dir, "events")
file, err := os.OpenFile(b.mmapfPath, os.O_CREATE|os.O_RDWR, 0644) file, err := os.OpenFile(b.mmapfPath, os.O_CREATE|os.O_RDWR, 0644)