From 1b29a27ab0b163f8a3e0abac4c3fafd64f25cd3d Mon Sep 17 00:00:00 2001 From: hantmac Date: Fri, 30 Aug 2019 17:58:58 +0800 Subject: [PATCH 1/2] bug fix: hot fix out of memory problem caused by log read --- backend/services/log.go | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/backend/services/log.go b/backend/services/log.go index d59e463e..b3eec028 100644 --- a/backend/services/log.go +++ b/backend/services/log.go @@ -7,7 +7,7 @@ import ( "crawlab/utils" "encoding/json" "github.com/apex/log" - "io/ioutil" + "os" "runtime/debug" ) @@ -16,13 +16,28 @@ var TaskLogChanMap = utils.NewChanMap() // 获取本地日志 func GetLocalLog(logPath string) (fileBytes []byte, err error) { - fileBytes, err = ioutil.ReadFile(logPath) + + f, err := os.Open(logPath) if err != nil { - log.Errorf(err.Error()) + log.Error(err.Error()) debug.PrintStack() - return fileBytes, err + return nil, err } - return fileBytes, nil + fi, err := f.Stat() + if err != nil { + log.Error(err.Error()) + debug.PrintStack() + return nil, err + } + defer f.Close() + logBuf := make([]byte, 2048) + n, err := f.ReadAt(logBuf, fi.Size()-int64(len(logBuf))) + if err != nil { + log.Error(err.Error()) + debug.PrintStack() + } + logBuf = logBuf[:n] + return logBuf, nil } // 获取远端日志 From 782e5694e6c9a3e991d7345c7226f4c7dada7a2b Mon Sep 17 00:00:00 2001 From: hantmac Date: Fri, 30 Aug 2019 18:01:22 +0800 Subject: [PATCH 2/2] bug fix: hot fix out of memory problem caused by log read --- backend/services/log.go | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/services/log.go b/backend/services/log.go index b3eec028..9e96be03 100644 --- a/backend/services/log.go +++ b/backend/services/log.go @@ -35,6 +35,7 @@ func GetLocalLog(logPath string) (fileBytes []byte, err error) { if err != nil { log.Error(err.Error()) debug.PrintStack() + return nil, err } logBuf = logBuf[:n] return logBuf, nil