Merge branch 'main' into v2

* main:
  build: push artifacts to Azure (#10044)
  fix(syncthing): use separate lock file instead of locking the certificate (fixes #10053) (#10054)
  fix(syncthing): use separate lock file instead of locking the certificate (fixes #10053) (#10054)
This commit is contained in:
Jakob Borg
2025-04-12 15:16:36 +02:00
2 changed files with 8 additions and 4 deletions

View File

@@ -22,7 +22,6 @@ import (
"path"
"path/filepath"
"regexp"
"runtime"
"runtime/pprof"
"sort"
"strconv"
@@ -442,7 +441,7 @@ func (c *serveCmd) syncthingMain() {
}
// Ensure we are the only running instance
lf := flock.New(locations.Get(locations.CertFile))
lf := flock.New(locations.Get(locations.LockFile))
locked, err := lf.TryLock()
if err != nil {
l.Warnln("Failed to acquire lock:", err)
@@ -585,7 +584,10 @@ func (c *serveCmd) syncthingMain() {
pprof.StopCPUProfile()
}
runtime.KeepAlive(lf) // ensure lock is still held to this point
// Best effort remove lockfile, doesn't matter if it succeeds
_ = lf.Unlock()
_ = os.Remove(locations.Get(locations.LockFile))
os.Exit(int(status))
}
@@ -887,7 +889,7 @@ func (u upgradeCmd) Run() error {
release, err := checkUpgrade()
if err == nil {
lf := flock.New(locations.Get(locations.CertFile))
lf := flock.New(locations.Get(locations.LockFile))
locked, err := lf.TryLock()
if err != nil {
l.Warnln("Upgrade:", err)

View File

@@ -34,6 +34,7 @@ const (
AuditLog LocationEnum = "auditLog"
GUIAssets LocationEnum = "guiAssets"
DefFolder LocationEnum = "defFolder"
LockFile LocationEnum = "lockFile"
)
type BaseDirEnum string
@@ -127,6 +128,7 @@ var locationTemplates = map[LocationEnum]string{
AuditLog: "${data}/audit-%{timestamp}.log",
GUIAssets: "${config}/gui",
DefFolder: "${userHome}/Sync",
LockFile: "${data}/syncthing.lock",
}
var locations = make(map[LocationEnum]string)