Bug 1937830

Summary: regressions cp command in Podman v3.0 [rhel-8.5.0]
Product: Red Hat Enterprise Linux 8 Reporter: RHEL Program Management Team <pgm-rhel-tools>
Component: podmanAssignee: Jindrich Novy <jnovy>
Status: CLOSED ERRATA QA Contact: Alex Jia <ajia>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 8.4CC: bbaude, dwalsh, jligon, jnovy, lmiksik, lsm5, mheon, pthomas, ptrourke, tsweeney, umohnani, vrothber, ypu
Target Milestone: rcKeywords: Regression, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: podman-3.3.0-0.13.el8 or newer Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1936927 Environment:
Last Closed: 2021-11-09 17:37:14 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1936927, 1942300    
Bug Blocks:    

Comment 3 Alex Jia 2021-05-11 14:22:55 UTC
This bug has been verified on podman-3.2.0-0.11 w/ runc-1.0.0-72.rc93.


[test@hpe-dl380pgen8-02-vm-14 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.5 Beta (Ootpa)

[test@hpe-dl380pgen8-02-vm-14 ~]$ rpm -q podman runc crun kernel
podman-3.2.0-0.11.module+el8.5.0+10952+e23bdbc3.x86_64
runc-1.0.0-72.rc93.module+el8.5.0+10952+e23bdbc3.x86_64
crun-0.19.1-1.module+el8.5.0+10952+e23bdbc3.x86_64
kernel-4.18.0-305.1.el8.x86_64

[test@hpe-dl380pgen8-02-vm-14 ~]$ podman unshare cat /proc/self/uid_map
         0       1000          1
         1     100000      65536

[test@hpe-dl380pgen8-02-vm-14 ~]$ podman info --format json|jq .host.ociRuntime
{
  "name": "runc",
  "package": "runc-1.0.0-72.rc93.module+el8.5.0+10952+e23bdbc3.x86_64",
  "path": "/usr/bin/runc",
  "version": "runc version spec: 1.0.2-dev\ngo: go1.16.1\nlibseccomp: 2.5.1"
}
[test@hpe-dl380pgen8-02-vm-14 ~]$ mkdir -p /tmp/foo/bar
[test@hpe-dl380pgen8-02-vm-14 ~]$ podman run --name myctr -td quay.io/libpod/alpine top
Trying to pull quay.io/libpod/alpine:latest...
Getting image source signatures
Copying blob 9d16cba9fb96 done
Copying config 9617696764 done
Writing manifest to image destination
Storing signatures
dad46cede300f9435f7f63a1079e27643584739b15f98cfba8717fe97bc05673
[test@hpe-dl380pgen8-02-vm-14 ~]$ podman exec myctr touch /dummy.txt
[test@hpe-dl380pgen8-02-vm-14 ~]$ podman exec myctr ls -a
.
bin
dev
dummy.txt
etc
home
lib
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
[test@hpe-dl380pgen8-02-vm-14 ~]$ podman cp myctr:/ /tmp/foo/bar
[test@hpe-dl380pgen8-02-vm-14 ~]$ ls /tmp/foo/bar
bin  dummy.txt  etc  home  lib  media  mnt  opt  root  run  sbin  srv  tmp  usr  var

For more tests as follows.

system tests:
 ✓ podman cp file from host to container
 ✓ podman cp file from host to container tmpfs mount
 ✓ podman cp file from host to container and check ownership
 ✓ podman cp file from container to host
 ✓ podman cp dir from host to container
 ✓ podman cp dir from container to host
 ✓ podman cp symlinked directory from container
 ✓ podman cp file from host to container volume
 ✓ podman cp file from host to container mount
 ✓ podman cp * - wildcard copy multiple files from container to host
 ✓ podman cp - will not recognize symlink pointing into host space
 ✓ podman cp - will not expand globs in host space (#3829)
 ✓ podman cp - will not expand wildcard
 ✓ podman cp into container: weird symlink expansion
 ✓ podman cp into a subdirectory matching GraphRoot
 ✓ podman cp from stdin to container
 ✓ podman cp from container to stdout

17 tests, 0 failures

e2e tests:
podman cp volume                2.025749
podman cp symlink               2.395417
podman cp the root directory from the ctr to an existing directory on the host          2.514918
podman cp from ctr chown                2.765152
podman cp file          3.134092

Ran 5 of 1439 Specs in 38.881 seconds
SUCCESS! -- 5 Passed | 0 Failed | 0 Pending | 1434 Skipped
PASS

Ginkgo ran 1 suite in 44.839216862s
Test Suite Passed

Comment 4 Jindrich Novy 2021-07-21 11:04:02 UTC
Can we have qa ack here please?

Comment 8 Alex Jia 2021-08-03 09:31:43 UTC
This bug has been verified on podman-3.3.0-0.17.module+el8.5.0+12014+438a5746


[test@kvm-07-guest24 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.5 Beta (Ootpa)

[test@kvm-07-guest24 ~]$ rpm -q podman runc crun kernel
podman-3.3.0-0.17.module+el8.5.0+12014+438a5746.x86_64
runc-1.0.1-3.module+el8.5.0+12014+438a5746.x86_64
crun-0.21-1.module+el8.5.0+12014+438a5746.x86_64
kernel-4.18.0-325.el8.x86_64

[test@kvm-07-guest24 ~]$ podman unshare cat /proc/self/uid_map
         0       1000          1
         1     100000      65536

[test@kvm-07-guest24 ~]$ podman info --format json|jq .host.ociRuntime
{
  "name": "runc",
  "package": "runc-1.0.1-3.module+el8.5.0+12014+438a5746.x86_64",
  "path": "/usr/bin/runc",
  "version": "runc version unknown\nspec: 1.0.2-dev\ngo: go1.16.6\nlibseccomp: 2.5.1"
}

[test@kvm-07-guest24 ~]$ mkdir -p /tmp/foo/bar
[test@kvm-07-guest24 ~]$ podman run --name myctr -td quay.io/libpod/alpine top
Trying to pull quay.io/libpod/alpine:latest...
Getting image source signatures
Copying blob 9d16cba9fb96 done  
Copying config 9617696764 done  
Writing manifest to image destination
Storing signatures
0fb45cbbae413aded6d6a4e89772687db4bbbf55ce103472cbf0f2a08f7ca3ef
[test@kvm-07-guest24 ~]$ podman exec myctr touch /dummy.txt
[test@kvm-07-guest24 ~]$ podman exec myctr ls -a
.
..
bin
dev
dummy.txt
etc
home
lib
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
[test@kvm-07-guest24 ~]$ podman cp myctr:/ /tmp/foo/bar
[test@kvm-07-guest24 ~]$ ls /tmp/foo/bar
bin  dummy.txt  etc  home  lib  media  mnt  opt  root  run  sbin  srv  tmp  usr  var

And also passed for system tests of podman cp command.

ok 1 podman cp file from host to container
ok 2 podman cp file from host to container tmpfs mount
ok 3 podman cp (-a=true) file from host to container and check ownership
ok 4 podman cp (-a=false) file from host to container and check ownership
ok 5 podman cp file from/to host while --pid=host # skip 'podman cp --pid=host' (rootless) only works with cgroups v2
ok 6 podman cp file from container to host
ok 7 podman cp file from container to container
ok 8 podman cp dir from host to container
ok 9 podman cp dir from container to host
ok 10 podman cp dir from container to container
ok 11 podman cp symlinked directory from container
ok 12 podman cp file from host to container volume
ok 13 podman cp file from host to container mount
ok 14 podman cp * - wildcard copy multiple files from container to host
ok 15 podman cp - will not recognize symlink pointing into host space
ok 16 podman cp - will not expand globs in host space (#3829)
ok 17 podman cp - will not expand wildcard
ok 18 podman cp into container: weird symlink expansion
ok 19 podman cp into a subdirectory matching GraphRoot
ok 20 podman cp from stdin to container
ok 21 podman cp from container to stdout

Comment 10 errata-xmlrpc 2021-11-09 17:37:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: container-tools:rhel8 security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:4154