Actually fix race condition that happens in production. I think.

This commit is contained in:
Gabe Kangas 2020-06-18 13:09:54 -07:00
parent 51b79287c5
commit f013a8639a
3 changed files with 12 additions and 4 deletions

View File

@ -22,9 +22,11 @@ var stats *Stats
var usingExternalStorage = false
func main() {
// logrus.SetReportCaller(true)
log.StandardLogger().Printf("Owncast v%s/%s (%s)", BuildVersion, BuildType, GitCommit)
checkConfig(configuration)
resetDirectories(configuration)
stats = getSavedStats()
stats.Setup()
@ -42,15 +44,13 @@ func main() {
go monitorVideoContent(configuration.PrivateHLSPath, configuration, storage)
}
createInitialOfflineState()
go startRTMPService()
resetDirectories(configuration)
startWebServer()
}
func startWebServer() {
// log.SetFlags(log.Lshortfile)
// websocket server
server = NewServer("/entry")
go server.Listen()

View File

@ -88,6 +88,9 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu
case event := <-w.Event:
relativePath := getRelativePathFromAbsolutePath(event.Path)
if path.Ext(relativePath) == ".tmp" {
continue
}
// Ignore removals
if event.Op == watcher.Remove {
@ -130,11 +133,13 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu
}()
// Watch the hls segment storage folder recursively for changes.
w.FilterOps(watcher.Write, watcher.Rename, watcher.Create)
if err := w.AddRecursive(pathToMonitor); err != nil {
log.Fatalln(err)
}
if err := w.Start(time.Millisecond * 100); err != nil {
if err := w.Start(time.Millisecond * 200); err != nil {
log.Fatalln(err)
}
}

View File

@ -74,6 +74,9 @@ func resetDirectories(configuration Config) {
os.MkdirAll(path.Join(configuration.PublicHLSPath, strconv.Itoa(0)), 0777)
}
}
func createInitialOfflineState() {
// Provide default files
showStreamOfflineState(configuration)
if !fileExists("webroot/thumbnail.png") {