From ae046fb34edaf8909a5c6e44d69b401f01519f97 Mon Sep 17 00:00:00 2001 From: kasyap dharanikota <76957823+kasyap1234@users.noreply.github.com> Date: Mon, 14 Apr 2025 13:54:21 +0530 Subject: [PATCH] fix: handle error from InvalidateAllCaches in slack.go (#30606) * fix: hanlde error from InvalidateAllCaches in slack.go * change signature of InvalidateAllCaches to *model.AppError * return err from InvalidateAllCaches everywhere * Formatting --------- Co-authored-by: Ben Schumacher --- server/.golangci.yml | 1 - server/channels/app/admin.go | 4 ++-- server/channels/app/platform/cluster_handlers.go | 11 ++++++++--- server/channels/app/slack.go | 2 +- server/platform/services/slackimport/slackimport.go | 6 ++++-- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/server/.golangci.yml b/server/.golangci.yml index 0c2d5e4999..48a2e02964 100644 --- a/server/.golangci.yml +++ b/server/.golangci.yml @@ -103,7 +103,6 @@ issues: channels/app/platform/status.go|\ channels/app/platform/web_hub_test.go|\ channels/app/post_test.go|\ - channels/app/slack.go|\ channels/app/slashcommands/auto_environment.go|\ channels/app/slashcommands/command_test.go|\ channels/app/slashcommands/helper_test.go|\ diff --git a/server/channels/app/admin.go b/server/channels/app/admin.go index 9143bb5c8d..67330c677c 100644 --- a/server/channels/app/admin.go +++ b/server/channels/app/admin.go @@ -145,8 +145,8 @@ func (s *Server) InvalidateAllCaches() *model.AppError { return s.platform.InvalidateAllCaches() } -func (s *Server) InvalidateAllCachesSkipSend() { - s.platform.InvalidateAllCachesSkipSend() +func (s *Server) InvalidateAllCachesSkipSend() *model.AppError { + return s.platform.InvalidateAllCachesSkipSend() } func (a *App) RecycleDatabaseConnection(rctx request.CTX) { diff --git a/server/channels/app/platform/cluster_handlers.go b/server/channels/app/platform/cluster_handlers.go index c769dbd566..e5ced2b9b5 100644 --- a/server/channels/app/platform/cluster_handlers.go +++ b/server/channels/app/platform/cluster_handlers.go @@ -52,7 +52,9 @@ func (ps *PlatformService) ClusterUpdateStatusHandler(msg *model.ClusterMessage) } func (ps *PlatformService) ClusterInvalidateAllCachesHandler(msg *model.ClusterMessage) { - ps.InvalidateAllCachesSkipSend() + if err := ps.InvalidateAllCachesSkipSend(); err != nil { + ps.logger.Error("Error validating caches from cluster message", mlog.Err(err)) + } } func (ps *PlatformService) clusterInvalidateWebConnSessionCacheForUserHandler(msg *model.ClusterMessage) { @@ -98,7 +100,7 @@ func (ps *PlatformService) invalidateWebConnSessionCacheForUserSkipClusterSend(u } } -func (ps *PlatformService) InvalidateAllCachesSkipSend() { +func (ps *PlatformService) InvalidateAllCachesSkipSend() *model.AppError { ps.logger.Info("Purging all caches") ps.ClearAllUsersSessionCacheLocal() if err := ps.statusCache.Purge(); err != nil { @@ -115,10 +117,13 @@ func (ps *PlatformService) InvalidateAllCachesSkipSend() { ps.logger.Warn("Failed to clear the link cache", mlog.Err(err)) } ps.LoadLicense() + return nil } func (ps *PlatformService) InvalidateAllCaches() *model.AppError { - ps.InvalidateAllCachesSkipSend() + if err := ps.InvalidateAllCachesSkipSend(); err != nil { + return err + } if ps.clusterIFace != nil { msg := &model.ClusterMessage{ diff --git a/server/channels/app/slack.go b/server/channels/app/slack.go index e958248e2d..f4ef300e5c 100644 --- a/server/channels/app/slack.go +++ b/server/channels/app/slack.go @@ -38,7 +38,7 @@ func (a *App) SlackImport(c request.CTX, fileData multipart.File, fileSize int64 }, GenerateThumbnailImage: a.generateThumbnailImage, GeneratePreviewImage: a.generatePreviewImage, - InvalidateAllCaches: func() { a.ch.srv.InvalidateAllCaches() }, + InvalidateAllCaches: func() *model.AppError { return a.ch.srv.platform.InvalidateAllCaches() }, MaxPostSize: func() int { return a.ch.srv.platform.MaxPostSize() }, PrepareImage: func(fileData []byte) (image.Image, string, func(), error) { img, imgType, release, err := prepareImage(c, a.ch.imgDecoder, bytes.NewReader(fileData)) diff --git a/server/platform/services/slackimport/slackimport.go b/server/platform/services/slackimport/slackimport.go index 469ab6c0be..d39034e034 100644 --- a/server/platform/services/slackimport/slackimport.go +++ b/server/platform/services/slackimport/slackimport.go @@ -93,7 +93,7 @@ type Actions struct { DoUploadFile func(time.Time, string, string, string, string, []byte) (*model.FileInfo, *model.AppError) GenerateThumbnailImage func(request.CTX, image.Image, string, string) GeneratePreviewImage func(request.CTX, image.Image, string, string) - InvalidateAllCaches func() + InvalidateAllCaches func() *model.AppError MaxPostSize func() int PrepareImage func(fileData []byte) (image.Image, string, func(), error) } @@ -210,7 +210,9 @@ func (si *SlackImporter) SlackImport(rctx request.CTX, fileData multipart.File, si.deactivateSlackBotUser(rctx, botUser) } - si.actions.InvalidateAllCaches() + if err := si.actions.InvalidateAllCaches(); err != nil { + return err, log + } log.WriteString(i18n.T("api.slackimport.slack_import.notes")) log.WriteString("=======\r\n\r\n")