From cc1acc389008d31a8166a89c97ed4829d9482d1f Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah <69568555+mohamedawnallah@users.noreply.github.com> Date: Thu, 4 Jul 2024 06:30:03 +0300 Subject: [PATCH] JobService: fix for missing log data in jobservice DB logging (#20684) * 20548 MISSING CONDITION FOR RETURNING LOG DATA As per bug 20548, if DB logging is enabled for jobservice and the parameter is also set for maximum log size the log data is not being returned and 'Clean Up->Show GC Logs' shows a blank page Signed-off-by: Mohamed Awnallah Co-authored-by: Nick Hindley * db_getter_test.go: test fix for missing log data in jobservice DB logging Signed-off-by: Mohamed Awnallah --------- Signed-off-by: Mohamed Awnallah Co-authored-by: Nick Hindley Co-authored-by: Shengwen YU --- src/jobservice/logger/getter/db_getter.go | 2 +- src/jobservice/logger/getter/db_getter_test.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/jobservice/logger/getter/db_getter.go b/src/jobservice/logger/getter/db_getter.go index 1d98170ab..ba96b9905 100644 --- a/src/jobservice/logger/getter/db_getter.go +++ b/src/jobservice/logger/getter/db_getter.go @@ -47,7 +47,7 @@ func (dbg *DBGetter) Retrieve(logID string) ([]byte, error) { sz := int64(len(jobLog.Content)) var buf []byte sizeLimit := logSizeLimit() - if sizeLimit <= 0 { + if sizeLimit <= 0 || sz <= sizeLimit { buf = []byte(jobLog.Content) return buf, nil } diff --git a/src/jobservice/logger/getter/db_getter_test.go b/src/jobservice/logger/getter/db_getter_test.go index ef6963031..0faccca8d 100644 --- a/src/jobservice/logger/getter/db_getter_test.go +++ b/src/jobservice/logger/getter/db_getter_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/require" "github.com/goharbor/harbor/src/common/dao" + "github.com/goharbor/harbor/src/jobservice/config" "github.com/goharbor/harbor/src/jobservice/logger/backend" "github.com/goharbor/harbor/src/jobservice/logger/sweeper" "github.com/goharbor/harbor/src/lib/log" @@ -44,9 +45,11 @@ func TestDBGetter(t *testing.T) { err = l.Close() require.NoError(t, err) + _ = config.DefaultConfig.Load("../../config_test.yml", true) dbGetter := NewDBGetter() ll, err := dbGetter.Retrieve(uuid) require.Nil(t, err) + require.NotEqual(t, 0, len(ll)) log.Infof("get logger %s", ll) err = sweeper.PrepareDBSweep()