Skip to content

Commit c051e2a

Browse files
Merge pull request #1890 from Luap99/mkcomposefs-error
composefs: return mkcomposefs stderr as part of error
2 parents 0b293c3 + 2a4b851 commit c051e2a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

drivers/overlay/composefs.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44
package overlay
55

66
import (
7+
"bytes"
78
"encoding/binary"
89
"errors"
910
"fmt"
1011
"os"
1112
"os/exec"
1213
"path/filepath"
14+
"strings"
1315
"sync"
1416

1517
"github.com/containers/storage/pkg/chunked/dump"
@@ -70,12 +72,18 @@ func generateComposeFsBlob(verityDigests map[string]string, toc interface{}, com
7072
// a scope to close outFd before setting fsverity on the read-only fd.
7173
defer outFd.Close()
7274

75+
errBuf := &bytes.Buffer{}
7376
cmd := exec.Command(writerJson, "--from-file", "-", "/proc/self/fd/3")
7477
cmd.ExtraFiles = []*os.File{outFd}
75-
cmd.Stderr = os.Stderr
78+
cmd.Stderr = errBuf
7679
cmd.Stdin = dumpReader
7780
if err := cmd.Run(); err != nil {
78-
return fmt.Errorf("failed to convert json to erofs: %w", err)
81+
rErr := fmt.Errorf("failed to convert json to erofs: %w", err)
82+
exitErr := &exec.ExitError{}
83+
if errors.As(err, &exitErr) {
84+
return fmt.Errorf("%w: %s", rErr, strings.TrimSpace(errBuf.String()))
85+
}
86+
return rErr
7987
}
8088
return nil
8189
}()

0 commit comments

Comments
 (0)