fix: system errcheck issues (#28537)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
ed4cab7aa2
Коммит
a2acee5280
@@ -104,7 +104,7 @@ issues:
|
|||||||
channels/api4/shared_channel_test.go|\
|
channels/api4/shared_channel_test.go|\
|
||||||
channels/api4/status.go|\
|
channels/api4/status.go|\
|
||||||
channels/api4/status_test.go|\
|
channels/api4/status_test.go|\
|
||||||
channels/api4/system.go|\
|
channels/api4/system_local.go|\
|
||||||
channels/api4/system_test.go|\
|
channels/api4/system_test.go|\
|
||||||
channels/api4/team.go|\
|
channels/api4/team.go|\
|
||||||
channels/api4/team_local.go|\
|
channels/api4/team_local.go|\
|
||||||
|
|||||||
@@ -129,7 +129,11 @@ func generateSupportPacket(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fileBytes, err := fileStorageBackend.ReadFile(path.Join(outputDirectoryToUse, outputZipFilename))
|
fileBytes, err := fileStorageBackend.ReadFile(path.Join(outputDirectoryToUse, outputZipFilename))
|
||||||
defer fileStorageBackend.RemoveDirectory(outputDirectoryToUse)
|
defer func() {
|
||||||
|
if err = fileStorageBackend.RemoveDirectory(outputDirectoryToUse); err != nil {
|
||||||
|
c.Logger.Warn("Error while removing directory", mlog.Err(err))
|
||||||
|
}
|
||||||
|
}()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err = model.NewAppError("Api4.generateSupportPacket", "api.unable_to_read_file_from_backend", nil, "", http.StatusForbidden).Wrap(err)
|
c.Err = model.NewAppError("Api4.generateSupportPacket", "api.unable_to_read_file_from_backend", nil, "", http.StatusForbidden).Wrap(err)
|
||||||
return
|
return
|
||||||
@@ -223,7 +227,9 @@ func getSystemPing(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Write(model.ToJSON(s))
|
if _, err := w.Write(model.ToJSON(s)); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testEmail(c *Context, w http.ResponseWriter, r *http.Request) {
|
func testEmail(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -400,7 +406,9 @@ func queryLogs(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
auditRec.AddMeta("page", c.Params.Page)
|
auditRec.AddMeta("page", c.Params.Page)
|
||||||
auditRec.AddMeta("logs_per_page", c.Params.LogsPerPage)
|
auditRec.AddMeta("logs_per_page", c.Params.LogsPerPage)
|
||||||
|
|
||||||
w.Write(model.ToJSON(logsJSON))
|
if _, err := w.Write(model.ToJSON(logsJSON)); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getLogs(c *Context, w http.ResponseWriter, r *http.Request) {
|
func getLogs(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -426,7 +434,9 @@ func getLogs(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
audit.AddEventParameter(auditRec, "page", c.Params.Page)
|
audit.AddEventParameter(auditRec, "page", c.Params.Page)
|
||||||
audit.AddEventParameter(auditRec, "logs_per_page", c.Params.LogsPerPage)
|
audit.AddEventParameter(auditRec, "logs_per_page", c.Params.LogsPerPage)
|
||||||
|
|
||||||
w.Write([]byte(model.ArrayToJSON(lines)))
|
if _, err := w.Write([]byte(model.ArrayToJSON(lines))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func downloadLogs(c *Context, w http.ResponseWriter, r *http.Request) {
|
func downloadLogs(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -555,7 +565,9 @@ func getLatestVersion(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Write(b)
|
if _, err := w.Write(b); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSupportedTimezones(c *Context, w http.ResponseWriter, r *http.Request) {
|
func getSupportedTimezones(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -570,7 +582,9 @@ func getSupportedTimezones(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Write(b)
|
if _, err := w.Write(b); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testS3(c *Context, w http.ResponseWriter, r *http.Request) {
|
func testS3(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -617,7 +631,9 @@ func getRedirectLocation(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
m["location"] = ""
|
m["location"] = ""
|
||||||
|
|
||||||
if !*c.App.Config().ServiceSettings.EnableLinkPreviews {
|
if !*c.App.Config().ServiceSettings.EnableLinkPreviews {
|
||||||
w.Write([]byte(model.MapToJSON(m)))
|
if _, err := w.Write([]byte(model.MapToJSON(m))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -630,7 +646,9 @@ func getRedirectLocation(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
var location string
|
var location string
|
||||||
if err := redirectLocationDataCache.Get(url, &location); err == nil {
|
if err := redirectLocationDataCache.Get(url, &location); err == nil {
|
||||||
m["location"] = location
|
m["location"] = location
|
||||||
w.Write([]byte(model.MapToJSON(m)))
|
if _, err := w.Write([]byte(model.MapToJSON(m))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -642,13 +660,20 @@ func getRedirectLocation(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
res, err := client.Head(url)
|
res, err := client.Head(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Cache failures to prevent retries.
|
// Cache failures to prevent retries.
|
||||||
redirectLocationDataCache.SetWithExpiry(url, "", RedirectLocationCacheExpiry)
|
cacheErr := redirectLocationDataCache.SetWithExpiry(url, "", RedirectLocationCacheExpiry)
|
||||||
|
if cacheErr != nil {
|
||||||
|
c.Logger.Warn("Failed to set cache for URL", mlog.String("url", url), mlog.Err(err))
|
||||||
|
}
|
||||||
// Always return a success status and a JSON string to limit information returned to client.
|
// Always return a success status and a JSON string to limit information returned to client.
|
||||||
w.Write([]byte(model.MapToJSON(m)))
|
if _, err = w.Write([]byte(model.MapToJSON(m))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
io.Copy(io.Discard, res.Body)
|
if _, err = io.Copy(io.Discard, res.Body); err != nil {
|
||||||
|
c.Logger.Warn("Error while removing directory", mlog.Err(err))
|
||||||
|
}
|
||||||
res.Body.Close()
|
res.Body.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -657,16 +682,26 @@ func getRedirectLocation(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
// If the location length is > 2100, we can probably ignore. Fixes https://mattermost.atlassian.net/browse/MM-54219
|
// If the location length is > 2100, we can probably ignore. Fixes https://mattermost.atlassian.net/browse/MM-54219
|
||||||
if len(location) > RedirectLocationMaximumLength {
|
if len(location) > RedirectLocationMaximumLength {
|
||||||
// Treating as a "failure". Cache failures to prevent retries.
|
// Treating as a "failure". Cache failures to prevent retries.
|
||||||
redirectLocationDataCache.SetWithExpiry(url, "", RedirectLocationCacheExpiry)
|
cacheErr := redirectLocationDataCache.SetWithExpiry(url, "", RedirectLocationCacheExpiry)
|
||||||
|
if cacheErr != nil {
|
||||||
|
c.Logger.Warn("Failed to set cache for URL", mlog.String("url", url), mlog.Err(err))
|
||||||
|
}
|
||||||
// Always return a success status and a JSON string to limit information returned to client.
|
// Always return a success status and a JSON string to limit information returned to client.
|
||||||
w.Write([]byte(model.MapToJSON(m)))
|
if _, err = w.Write([]byte(model.MapToJSON(m))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
redirectLocationDataCache.SetWithExpiry(url, location, RedirectLocationCacheExpiry)
|
cacheErr := redirectLocationDataCache.SetWithExpiry(url, location, RedirectLocationCacheExpiry)
|
||||||
|
if cacheErr != nil {
|
||||||
|
c.Logger.Warn("Failed to set cache for URL", mlog.String("url", url), mlog.Err(err))
|
||||||
|
}
|
||||||
m["location"] = location
|
m["location"] = location
|
||||||
|
|
||||||
w.Write([]byte(model.MapToJSON(m)))
|
if _, err := w.Write([]byte(model.MapToJSON(m))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func pushNotificationAck(c *Context, w http.ResponseWriter, r *http.Request) {
|
func pushNotificationAck(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -692,9 +727,11 @@ func pushNotificationAck(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
if ignoreNotificationACK && ack.ClientPlatform == "ios" {
|
if ignoreNotificationACK && ack.ClientPlatform == "ios" {
|
||||||
// iOS doesn't send ack when the notificications are disabled
|
// iOS doesn't send ack when the notificications are disabled
|
||||||
// so we restore the value the moment we receive an ack
|
// so we restore the value the moment we receive an ack
|
||||||
c.App.SetExtraSessionProps(session, map[string]string{
|
if err := c.App.SetExtraSessionProps(session, map[string]string{
|
||||||
model.SessionPropDeviceNotificationDisabled: "false",
|
model.SessionPropDeviceNotificationDisabled: "false",
|
||||||
})
|
}); err != nil {
|
||||||
|
c.Logger.Warn("Failed to set extra session props", mlog.Err(err))
|
||||||
|
}
|
||||||
c.App.ClearSessionCacheForUser(session.UserId)
|
c.App.ClearSessionCacheForUser(session.UserId)
|
||||||
}
|
}
|
||||||
if !ignoreNotificationACK {
|
if !ignoreNotificationACK {
|
||||||
@@ -869,7 +906,10 @@ func upgradeToEnterprise(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.App.Srv().Go(func() {
|
c.App.Srv().Go(func() {
|
||||||
c.App.Srv().UpgradeToE0()
|
err := c.App.Srv().UpgradeToE0()
|
||||||
|
if err != nil {
|
||||||
|
c.Logger.Error("Error while upgrading to E0", mlog.Err(err))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
auditRec.Success()
|
auditRec.Success()
|
||||||
@@ -899,7 +939,9 @@ func upgradeToEnterpriseStatus(c *Context, w http.ResponseWriter, r *http.Reques
|
|||||||
s = map[string]any{"percentage": percentage, "error": nil}
|
s = map[string]any{"percentage": percentage, "error": nil}
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Write([]byte(model.StringInterfaceToJSON(s)))
|
if _, err := w.Write([]byte(model.StringInterfaceToJSON(s))); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func restart(c *Context, w http.ResponseWriter, r *http.Request) {
|
func restart(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -916,7 +958,10 @@ func restart(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
c.App.Srv().Restart()
|
err := c.App.Srv().Restart()
|
||||||
|
if err != nil {
|
||||||
|
c.Logger.Error("Error while restarting server", mlog.Err(err))
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1034,8 +1079,10 @@ func getAppliedSchemaMigrations(c *Context, w http.ResponseWriter, r *http.Reque
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Write(js)
|
|
||||||
auditRec.Success()
|
auditRec.Success()
|
||||||
|
if _, err := w.Write(js); err != nil {
|
||||||
|
c.Logger.Warn("Error while writing response", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns true if the data has nil fields
|
// returns true if the data has nil fields
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user