Skip to content

Fedora Package Build Fails SELinux Related Unit Tests #605

@c4t3l

Description

@c4t3l

I am a Fedora package maintainer and I am working on getting umoci into the distro. One core tenet of packaging golang projects in Fedora is that we MUST[1] run unit tests. Package builds of umoci fail with the following output:

--- FAIL: TestUnpackGenerateRoundTrip_ComplexXattr_OverlayfsRootfs (0.03s)
    --- FAIL: TestUnpackGenerateRoundTrip_ComplexXattr_OverlayfsRootfs/TarEntries=user.overlay. (0.02s)
        --- FAIL: TestUnpackGenerateRoundTrip_ComplexXattr_OverlayfsRootfs/TarEntries=user.overlay./DirRootfs (0.01s)
            xattr_linux_test.go:216: 
                	Error Trace:	/builddir/build/BUILD/umoci-0.5.0-build/umoci-0.5.0/src/github.com/opencontainers/umoci/oci/layer/xattr_linux_test.go:216
                	Error:      	Not equal: 
                	            	expected: map[string]string{"user.dummy.xattr":"foobar", "user.overlay.opaque":"x"}
                	            	actual  : map[string]string{"security.selinux":"system_u:object_r:mock_var_lib_t:s0\x00", "user.dummy.xattr":"foobar", "user.overlay.opaque":"x"}
                	            	
                	            	Diff:
                	            	--- Expected
                	            	+++ Actual
                	            	@@ -1,2 +1,3 @@
                	            	-(map[string]string) (len=2) {
                	            	+(map[string]string) (len=3) {
                	            	+ (string) (len=16) "security.selinux": (string) (len=36) "system_u:object_r:mock_var_lib_t:s0\x00",
                	            	  (string) (len=16) "user.dummy.xattr": (string) (len=6) "foobar",
                	Test:       	TestUnpackGenerateRoundTrip_ComplexXattr_OverlayfsRootfs/TarEntries=user.overlay./DirRootfs
                	Messages:   	UnpackEntry("."): expected to see map[string]string{"user.dummy.xattr":"foobar", "user.overlay.opaque":"x"} not be remapped
            xattr_linux_test.go:216: 
                	Error Trace:	/builddir/build/BUILD/umoci-0.5.0-build/umoci-0.5.0/src/github.com/opencontainers/umoci/oci/layer/xattr_linux_test.go:216
                	Error:      	Not equal: 
                	            	expected: map[string]string{"user.overlay.fakexattr":"fakexattr"}
                	            	actual  : map[string]string{"security.selinux":"system_u:object_r:mock_var_lib_t:s0\x00", "user.overlay.fakexattr":"fakexattr"}
                	            	
                	            	Diff:
                	            	--- Expected
                	            	+++ Actual
                	            	@@ -1,2 +1,3 @@
                	            	-(map[string]string) (len=1) {
                	            	+(map[string]string) (len=2) {
                	            	+ (string) (len=16) "security.selinux": (string) (len=36) "system_u:object_r:mock_var_lib_t:s0\x00",
                	            	  (string) (len=22) "user.overlay.fakexattr": (string) (len=9) "fakexattr"
                	Test:       	TestUnpackGenerateRoundTrip_ComplexXattr_OverlayfsRootfs/TarEntries=user.overlay./DirRootfs
                	Messages:   	UnpackEntry("foo/"): expected to see map[string]string{"user.overlay.fakexattr":"fakexattr"} not be remapped
            xattr_linux_test.go:216: 
                	Error Trace:	/builddir/build/BUILD/umoci-0.5.0-build/umoci-0.5.0/src/github.com/opencontainers/umoci/oci/layer/xattr_linux_test.go:216
                	Error:      	Not equal: 
                	            	expected: map[string]string{"user.overlay.whiteout":"foo"}
                	            	actual  : map[string]string{"security.selinux":"system_u:object_r:mock_var_lib_t:s0\x00", "user.overlay.whiteout":"foo"}
                	            	
                	            	Diff:
                	            	--- Expected
                	            	+++ Actual
                	            	@@ -1,2 +1,3 @@
                	            	-(map[string]string) (len=1) {
                	            	+(map[string]string) (len=2) {
                	            	+ (string) (len=16) "security.selinux": (string) (len=36) "system_u:object_r:mock_var_lib_t:s0\x00",
                	            	  (string) (len=21) "user.overlay.whiteout": (string) (len=3) "foo"
                	Test:       	TestUnpackGenerateRoundTrip_ComplexXattr_OverlayfsRootfs/TarEntries=user.overlay./DirRootfs
                	Messages:   	UnpackEntry("foo/bar"): expected to see map[string]string{"user.overlay.whiteout":"foo"} not be remapped
            xattr_linux_test.go:216: 
                	Error Trace:	/builddir/build/BUILD/umoci-0.5.0-build/umoci-0.5.0/src/github.com/opencontainers/umoci/oci/layer/xattr_linux_test.go:216
                	Error:      	Not equal: 
                	            	expected: map[string]string{"user.overlay.opaque":"y"}
                	            	actual  : map[string]string{"security.selinux":"system_u:object_r:mock_var_lib_t:s0\x00", "user.overlay.opaque":"y"}
                	            	
                	            	Diff:
                	            	--- Expected
                	            	+++ Actual
                	            	@@ -1,2 +1,3 @@
                	            	-(map[string]string) (len=1) {
                	            	+(map[string]string) (len=2) {
                	            	+ (string) (len=16) "security.selinux": (string) (len=36) "system_u:object_r:mock_var_lib_t:s0\x00",
                	            	  (string) (len=19) "user.overlay.opaque": (string) (len=1) "y"

The above output is only a snippet. There appear to be approximately 24 failures related to xattr_linux_test.go.

Please note:
When I run the package build on my local system with selinux disabled, I get no such errors. When selinux is enabled, these tests fail. The Fedora build environment runs with SELinux enabled, and to my knowledge, is unchangeable.

[1] - https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/#_testing

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions