镜像自地址
https://github.com/tuna/tunasync.git
已同步 2025-12-06 06:26:46 +00:00
bug fix: log over-written in twoStageRsyncProvider
solve more DATA RACE problem
这个提交包含在:
@@ -109,12 +109,16 @@ func (p *baseProvider) Docker() *dockerHook {
|
||||
return p.docker
|
||||
}
|
||||
|
||||
func (p *baseProvider) prepareLogFile() error {
|
||||
func (p *baseProvider) prepareLogFile(append bool) error {
|
||||
if p.LogFile() == "/dev/null" {
|
||||
p.cmd.SetLogFile(nil)
|
||||
return nil
|
||||
}
|
||||
logFile, err := os.OpenFile(p.LogFile(), os.O_WRONLY|os.O_CREATE, 0644)
|
||||
appendMode := 0
|
||||
if append {
|
||||
appendMode = os.O_APPEND
|
||||
}
|
||||
logFile, err := os.OpenFile(p.LogFile(), os.O_WRONLY|os.O_CREATE|appendMode, 0644)
|
||||
if err != nil {
|
||||
logger.Errorf("Error opening logfile %s: %s", p.LogFile(), err.Error())
|
||||
return err
|
||||
@@ -138,19 +142,22 @@ func (p *baseProvider) IsRunning() bool {
|
||||
|
||||
func (p *baseProvider) Wait() error {
|
||||
defer func() {
|
||||
logger.Debugf("set isRunning to false: %s", p.Name())
|
||||
p.isRunning.Store(false)
|
||||
}()
|
||||
logger.Debugf("calling Wait: %s", p.Name())
|
||||
return p.cmd.Wait()
|
||||
}
|
||||
|
||||
func (p *baseProvider) Terminate() error {
|
||||
p.Lock()
|
||||
defer p.Unlock()
|
||||
logger.Debugf("terminating provider: %s", p.Name())
|
||||
if !p.IsRunning() {
|
||||
return nil
|
||||
}
|
||||
|
||||
err := p.cmd.Terminate()
|
||||
p.isRunning.Store(false)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户