Skip to content

Commit 5c1e07b

Browse files
author
xml
committed
fix: ensure error logs are output for OnlyLog type and unknown errors
- Add indicator logging in CheckPkgSystemError when parsePkgSystemError returns error - Return ErrorUnknown JobError instead of silently dropping error when parsePkgSystemError returns nil - Move log output before JobId check in handleJobProgressInfo to ensure OnlyLog messages are not skipped Bug: https://pms.uniontech.com/bug-view-352601.html
1 parent 9fe165e commit 5c1e07b

2 files changed

Lines changed: 28 additions & 4 deletions

File tree

src/internal/system/apt/proxy.go

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,30 @@ func CheckPkgSystemError(lock bool, indicator system.Indicator) error {
264264
if err == nil {
265265
return nil
266266
}
267-
return parsePkgSystemError(outBuf.Bytes(), errBuf.Bytes())
267+
if systemErr := parsePkgSystemError(outBuf.Bytes(), errBuf.Bytes()); systemErr != nil {
268+
if jobErr, ok := systemErr.(*system.JobError); ok {
269+
indicator(system.JobProgressInfo{
270+
OnlyLog: true,
271+
OriginalLog: fmt.Sprintf("=== CheckPkg cmd failed: [%s] %s ===\n", jobErr.ErrType, jobErr.ErrDetail),
272+
})
273+
} else {
274+
indicator(system.JobProgressInfo{
275+
OnlyLog: true,
276+
OriginalLog: fmt.Sprintf("=== CheckPkg cmd failed: %s ===\n", errBuf.String()),
277+
})
278+
}
279+
return systemErr
280+
}
281+
282+
jobErr := &system.JobError{
283+
ErrType: system.ErrorUnknown,
284+
ErrDetail: outBuf.String() + errBuf.String(),
285+
}
286+
indicator(system.JobProgressInfo{
287+
OnlyLog: true,
288+
OriginalLog: fmt.Sprintf("=== CheckPkg cmd failed: [%s] %s ===\n", jobErr.ErrType, jobErr.ErrDetail),
289+
})
290+
return jobErr
268291
}
269292

270293
func safeStart(c *system.Command) error {

src/lastore-daemon/job_manager.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -555,14 +555,15 @@ func (jm *JobManager) removeJob(jobId string, queueName string) error {
555555
}
556556

557557
func (jm *JobManager) handleJobProgressInfo(info system.JobProgressInfo) {
558+
// OnlyLog 类型基本上都不会设置JobId,将日志输出流程放到JobId判断之前来保证日志正常输出
559+
if jm.jobDetailFn != nil && len(info.OriginalLog) > 0 {
560+
jm.jobDetailFn(fmt.Sprintf("[%s] %s", time.Now().Format(time.DateTime), info.OriginalLog))
561+
}
558562
j := jm.findJobById(info.JobId)
559563
if j == nil {
560564
logger.Warningf("Can't find Job %q when update info %v\n", info.JobId, info)
561565
return
562566
}
563-
if jm.jobDetailFn != nil && len(info.OriginalLog) > 0 {
564-
jm.jobDetailFn(fmt.Sprintf("[%s] %s", time.Now().Format(time.DateTime), info.OriginalLog))
565-
}
566567
if info.OnlyLog {
567568
return
568569
}

0 commit comments

Comments
 (0)