From f041f0443e0e629fc19a5780a4241e686e6eaac3 Mon Sep 17 00:00:00 2001 From: Farhan Khan <khanzf@gmail.com> Date: Wed, 19 Jul 2023 15:55:16 -0400 Subject: [PATCH] Bug fix, no lock on actors variable, enabling Pleroma statistics --- fedilogger/retrieve.go | 4 ++++ fedilogger/stream.go | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/fedilogger/retrieve.go b/fedilogger/retrieve.go index 52883cf..5059414 100644 --- a/fedilogger/retrieve.go +++ b/fedilogger/retrieve.go @@ -263,7 +263,9 @@ func check_actor(uri string) *ActorJson { logWarn("Unable to unmarshal body from ", uri) return nil // Unable to unmarshal body of message } + o.Recentactors.Mu.Lock() o.Recentactors.Add(uri, actorjson) + o.Recentactors.Mu.Unlock() var bot bool if actorjson.Type == "Service" { @@ -278,6 +280,8 @@ func check_actor(uri string) *ActorJson { return nil // Unable to insert actor } + o.Recentactors.Mu.Lock() o.Recentactors.Add(uri, actorjson) + o.Recentactors.Mu.Unlock() return actorjson // Successful } diff --git a/fedilogger/stream.go b/fedilogger/stream.go index 2c4e9b8..76c440f 100644 --- a/fedilogger/stream.go +++ b/fedilogger/stream.go @@ -155,12 +155,12 @@ func StreamPleroma(endpoint string) { return } - // ri_mutex.Lock() - // m := runninginstances[endpoint] - // m.Status = shared.RUNNING - // m.LastRun = "Streaming" - // runninginstances[endpoint] = m - // ri_mutex.Unlock() + ri_mutex.Lock() + m := runninginstances[endpoint] + m.Status = shared.RUNNING + m.LastRun = "Streaming" + runninginstances[endpoint] = m + ri_mutex.Unlock() for { logDebug("Starting Pleroma Stream loop for ", endpoint) @@ -264,7 +264,7 @@ func StreamMastodon(endpoint string, o *shared.RunningInstance) { s := bufio.NewScanner(resp.Body) var name string for s.Scan() { - logDebug("Ending Mastodon stream loop for ", endpoint) + logDebug("Starting Mastodon stream loop for ", endpoint) line := s.Text() token := strings.SplitN(line, ":", 2) var newactivity shared.ReportActivity