-
Notifications
You must be signed in to change notification settings - Fork 68
Open
Description
On s390x the copy package fails if run inside a container because it fails to detect the existence of copy_file_range properly.
If ran on host
Line 74 in 7f53d41
| n, err := unix.CopyFileRange(srcFd, nil, dstFd, nil, int(size), 0) |
But if the same code is run under limited capabilities it produces EPERM instead(even though it doesn't seem to be allowed error for this syscall) and the copy fails.
--- FAIL: TestCopyDirectory (0.00s)
copy_test.go:47: Copy test failed: operation not permitted
copy file range failed
github.com/containerd/continuity/fs.copyFileContent
/root/go/src/github.com/containerd/continuity/fs/copy_linux.go:79
github.com/containerd/continuity/fs.CopyFile
/root/go/src/github.com/containerd/continuity/fs/copy.go:137
github.com/containerd/continuity/fs.copyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy.go:92
github.com/containerd/continuity/fs.copyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy.go:79
github.com/containerd/continuity/fs.CopyDir
/root/go/src/github.com/containerd/continuity/fs/copy.go:40
github.com/containerd/continuity/fs.testCopy
/root/go/src/github.com/containerd/continuity/fs/copy_test.go:97
github.com/containerd/continuity/fs.TestCopyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy_test.go:46
testing.tRunner
/usr/local/go/src/testing/testing.go:827
runtime.goexit
/usr/local/go/src/runtime/asm_s390x.s:782
failed to copy files
github.com/containerd/continuity/fs.copyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy.go:93
github.com/containerd/continuity/fs.copyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy.go:79
github.com/containerd/continuity/fs.CopyDir
/root/go/src/github.com/containerd/continuity/fs/copy.go:40
github.com/containerd/continuity/fs.testCopy
/root/go/src/github.com/containerd/continuity/fs/copy_test.go:97
github.com/containerd/continuity/fs.TestCopyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy_test.go:46
testing.tRunner
/usr/local/go/src/testing/testing.go:827
runtime.goexit
/usr/local/go/src/runtime/asm_s390x.s:782
failed to copy
github.com/containerd/continuity/fs.testCopy
/root/go/src/github.com/containerd/continuity/fs/copy_test.go:98
github.com/containerd/continuity/fs.TestCopyDirectory
/root/go/src/github.com/containerd/continuity/fs/copy_test.go:46
testing.tRunner
/usr/local/go/src/testing/testing.go:827
runtime.goexit
/usr/local/go/src/runtime/asm_s390x.s:782
FAIL
root@s390x-ubuntu-17:/home/ubuntu# uname -a
Linux s390x-ubuntu-17 4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 09:18:59 UTC 2018 s390x s390x s390x GNU/Linux
Metadata
Metadata
Assignees
Labels
No labels