diff --git a/reader/tailx/tailx.go b/reader/tailx/tailx.go index 698f958c1..d51f0b722 100644 --- a/reader/tailx/tailx.go +++ b/reader/tailx/tailx.go @@ -650,6 +650,11 @@ func (r *Reader) checkExpiredFiles() { } func (r *Reader) statLogPath() { + defer func() { + if rec := recover(); rec != nil { + log.Errorf("Reader %q was panicked and recovered from %v\nstack: %s", r.Name(), rec, debug.Stack()) + } + }() //达到最大打开文件数,不再追踪 if len(r.fileReaders) >= r.maxOpenFiles { if !IsSelfRunner(r.meta.RunnerName) { diff --git a/utils/models/utils.go b/utils/models/utils.go index a4dcc9df8..c7fcd6742 100644 --- a/utils/models/utils.go +++ b/utils/models/utils.go @@ -703,6 +703,9 @@ func GetRealPath(path string) (newPath string, fi os.FileInfo, err error) { } log.Infof("%s is symbol link to %v", path, newPath) fi, err = os.Lstat(newPath) + if err != nil { + return + } } newPath, err = filepath.Abs(newPath) if err != nil {