diff --git a/workhorse/internal/artifacts/entry.go b/workhorse/internal/artifacts/entry.go index 09d9c5635b748a61461d39442aed1ad04a146cc3..11b61f909409b4446a32d7877852700505807b2c 100644 --- a/workhorse/internal/artifacts/entry.go +++ b/workhorse/internal/artifacts/entry.go @@ -71,12 +71,19 @@ func unpackFileFromZip(ctx context.Context, archivePath, encodedFilename string, return err } + logWriter := log.ContextLogger(ctx).Writer() + defer func() { + if closeErr := logWriter.Close(); closeErr != nil { + log.ContextLogger(ctx).WithError(closeErr).Error("failed to close gitlab-zip-cat log writer") + } + }() + catFile := exec.Command("gitlab-zip-cat") catFile.Env = append(os.Environ(), "ARCHIVE_PATH="+archivePath, "ENCODED_FILE_NAME="+encodedFilename, ) - catFile.Stderr = log.ContextLogger(ctx).Writer() + catFile.Stderr = logWriter catFile.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} stdout, err := catFile.StdoutPipe() if err != nil { diff --git a/workhorse/internal/upload/artifacts_uploader.go b/workhorse/internal/upload/artifacts_uploader.go index 1e9219613c8ce7f992be8b27fd879becfd57db99..a4ecaa3b7bb641a374fec90dc6a7e6a1b8541da6 100644 --- a/workhorse/internal/upload/artifacts_uploader.go +++ b/workhorse/internal/upload/artifacts_uploader.go @@ -72,8 +72,15 @@ func (a *artifactsUploadProcessor) generateMetadataFromZip(ctx context.Context, fileName = file.RemoteURL } + logWriter := log.ContextLogger(ctx).Writer() + defer func() { + if closeErr := logWriter.Close(); closeErr != nil { + log.ContextLogger(ctx).WithError(closeErr).Error("failed to close gitlab-zip-metadata log writer") + } + }() + zipMd := exec.CommandContext(ctx, "gitlab-zip-metadata", "-zip-reader-limit", strconv.FormatInt(readerLimit, 10), fileName) - zipMd.Stderr = log.ContextLogger(ctx).Writer() + zipMd.Stderr = logWriter zipMd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} zipMdOut, err := zipMd.StdoutPipe()