ganto / copr-lxc4

RPM spec files for building the latest stable lxc/lxd/incus releases on Fedora COPR
MIT License
34 stars 7 forks source link

LXD test suite fails on armhfp (32bit) architecture #12

Closed ganto closed 1 year ago

ganto commented 3 years ago

The RPM build fails for all Fedora releases during the test suite with the following error:

=== RUN   TestIntegration_UnixSocket
    testing.go:36: 22:27:18.670 info Kernel uid/gid map:
    testing.go:36: 22:27:18.675 info  - u 0 0 4294967295
    testing.go:36: 22:27:18.675 info  - g 0 0 4294967295
    testing.go:36: 22:27:18.676 info Configured LXD uid/gid map:
    testing.go:36: 22:27:18.686 info  - u 0 100000 65536
    testing.go:36: 22:27:18.687 info  - g 0 100000 65536
    testing.go:36: 22:27:18.690 warn AppArmor support has been disabled because of lack of kernel support
    testing.go:36: 22:27:18.693 info LXD 4.12 is starting in mock mode path=/var/lib/lxd
    testing.go:36: 22:27:18.696 info Kernel uid/gid map:
    testing.go:36: 22:27:18.696 info  - u 0 0 4294967295
    testing.go:36: 22:27:18.696 info  - g 0 0 4294967295
    testing.go:36: 22:27:18.696 info Configured LXD uid/gid map:
    testing.go:36: 22:27:18.698 info  - u 0 100000 65536
    testing.go:36: 22:27:18.699 info  - g 0 100000 65536
    testing.go:36: 22:27:18.700 warn AppArmor support has been disabled because of lack of kernel support
    testing.go:36: 22:27:18.702 info Kernel features:
    testing.go:36: 22:27:18.702 info  - closing multiple file descriptors efficiently: no
    testing.go:36: 22:27:18.703 dbug Failed to attach to host network namespace
    testing.go:36: 22:27:18.703 info  - netnsid-based network retrieval: no
    testing.go:36: 22:27:18.703 info  - pidfds: no
    testing.go:36: 22:27:18.704 info  - uevent injection: yes
    testing.go:36: 22:27:18.704 info  - seccomp listener: no
    testing.go:36: 22:27:18.704 info  - seccomp listener continue syscalls: no
    testing.go:36: 22:27:18.704 info  - seccomp listener add file descriptors: no
    testing.go:36: 22:27:18.705 info  - attach to namespaces via pidfds: no
    testing.go:36: 22:27:18.705 info  - safe native terminal allocation : yes
    testing.go:36: 22:27:18.706 info  - unprivileged file capabilities: no
    testing.go:36: 22:27:18.707 info  - cgroup layout: cgroup2
    testing.go:36: 22:27:18.707 warn  - Couldn't find the CGroup hugetlb controller, hugepage limits will be ignored
    testing.go:36: 22:27:18.708 warn  - Couldn't find the CGroup network priority controller, network priority will be ignored
    testing.go:36: 22:27:18.708 warn  - Couldn't find the CGroup memory swap accounting, swap limits will be ignored
    testing.go:36: 22:27:18.709 dbug operation not permitted - Failed to unshare mount namespace
    testing.go:36: 22:27:18.710 info  - shiftfs support: no
    testing.go:36: 22:27:18.710 info Initializing local database
    testing.go:36: 22:27:18.833 dbug Initializing database gateway
    testing.go:36: 22:27:18.835 dbug Start database node id=1 address= role=voter
    testing.go:36: 22:27:18.891 info Starting /dev/lxd handler:
    testing.go:36: 22:27:18.891 info  - binding devlxd socket socket=/tmp/lxd-sys-os-test-974525412/devlxd/sock
    testing.go:36: 22:27:18.892 info REST API daemon:
    testing.go:36: 22:27:18.892 info  - binding Unix socket socket=/tmp/lxd-sys-os-test-974525412/unix.socket
    testing.go:36: 22:27:18.895 info Initializing global database
    testing.go:36: 22:27:18.919 dbug Dqlite: attempt 0: server 1: connected
    testing.go:36: 22:27:19.010 dbug Database error: protocol.Error{Code:10, Message:"no more rows available"}
    testing.go:36: 22:27:19.013 eror Failed to start the daemon: failed to open cluster database: failed to ensure schema: no more rows available
    testing.go:36: 22:27:19.013 info Starting shutdown sequence
    testing.go:36: 22:27:19.017 info Stop database gateway
    testing.go:36: 22:27:19.029 info Stopping REST API handler:
    testing.go:36: 22:27:19.030 info  - closing socket socket=/tmp/lxd-sys-os-test-974525412/unix.socket
    testing.go:36: 22:27:19.033 info Stopping /dev/lxd handler:
    testing.go:36: 22:27:19.033 info  - closing socket socket=/tmp/lxd-sys-os-test-974525412/devlxd/sock
    testing.go:36: 22:27:19.035 dbug Not unmounting temporary filesystems (containers are still running)
    daemon_integration_test.go:41: 
            Error Trace:    daemon_integration_test.go:41
                                        daemon_integration_test.go:17
            Error:          Received unexpected error:
                            no more rows available
                            failed to ensure schema
                            github.com/lxc/lxd/lxd/db.OpenCluster
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/db/db.go:239
                            github.com/lxc/lxd/lxd.(*Daemon).init
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon.go:960
                            github.com/lxc/lxd/lxd.(*Daemon).Init
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon.go:658
                            github.com/lxc/lxd/lxd.newTestDaemon
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon_integration_test.go:41
                            github.com/lxc/lxd/lxd.TestIntegration_UnixSocket
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon_integration_test.go:17
                            testing.tRunner
                                /usr/lib/golang/src/testing/testing.go:1123
                            runtime.goexit
                                /usr/lib/golang/src/runtime/asm_arm.s:857
                            failed to open cluster database
                            github.com/lxc/lxd/lxd.(*Daemon).init
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon.go:987
                            github.com/lxc/lxd/lxd.(*Daemon).Init
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon.go:658
                            github.com/lxc/lxd/lxd.newTestDaemon
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon_integration_test.go:41
                            github.com/lxc/lxd/lxd.TestIntegration_UnixSocket
                                /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon_integration_test.go:17
                            testing.tRunner
                                /usr/lib/golang/src/testing/testing.go:1123
                            runtime.goexit
                                /usr/lib/golang/src/runtime/asm_arm.s:857
            Test:           TestIntegration_UnixSocket
--- FAIL: TestIntegration_UnixSocket (0.40s)
=== RUN   TestCredsSendRecv
--- PASS: TestCredsSendRecv (0.01s)
=== RUN   TestHttpRequest
    devlxd_test.go:142: failed to open cluster database: failed to ensure schema: no more rows available
--- FAIL: TestHttpRequest (0.19s)
=== RUN   TestContainerTestSuite
=== RUN   TestContainerTestSuite/TestContainer_IsPrivileged_Privileged
    main_test.go:64: failed to start daemon: failed to open cluster database: failed to ensure schema: no more rows available
    suite.go:63: test panicked: runtime error: invalid memory address or nil pointer dereference
        goroutine 111 [running]:
        runtime/debug.Stack(0x420ed8f4, 0x412837f8, 0x419acd18)
            /usr/lib/golang/src/runtime/debug/stack.go:24 +0x80
        github.com/lxc/lxd/vendor/github.com/stretchr/testify/suite.failOnPanic(0x420837a0)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/vendor/github.com/stretchr/testify/suite/suite.go:63 +0x3c
        panic(0x412837f8, 0x419acd18)
            /usr/lib/golang/src/runtime/panic.go:969 +0x168
        github.com/lxc/lxd/lxd.(*Daemon).Stop(0x0, 0x42039500, 0x28ff4c68)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon.go:1318 +0x50
        github.com/lxc/lxd/lxd.(*lxdTestSuite).TearDownTest(0x4200c780)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/main_test.go:101 +0x20
        github.com/lxc/lxd/vendor/github.com/stretchr/testify/suite.Run.func1.1(0x424608e0, 0x420837a0, 0x4120947b, 0x25, 0x0, 0x0, 0x413a7aa0, 0x42277a80, 0x42277a80, 0x4216d8b8, ...)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/vendor/github.com/stretchr/testify/suite/suite.go:141 +0xb4
        panic(0x412837f8, 0x419acd18)
            /usr/lib/golang/src/runtime/panic.go:969 +0x168
        github.com/lxc/lxd/lxd.(*Daemon).State(...)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/daemon.go:388
        github.com/lxc/lxd/lxd.(*lxdTestSuite).SetupTest(0x4200c780)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/lxd/main_test.go:73 +0x28c
        github.com/lxc/lxd/vendor/github.com/stretchr/testify/suite.Run.func1(0x420837a0)
            /builddir/build/BUILD/lxd-4.12/_build/src/github.com/lxc/lxd/vendor/github.com/stretchr/testify/suite/suite.go:148 +0x49c
        testing.tRunner(0x420837a0, 0x422988c0)
            /usr/lib/golang/src/testing/testing.go:1123 +0xd8
        created by testing.(*T).Run
            /usr/lib/golang/src/testing/testing.go:1168 +0x254
[...]
--- FAIL: TestContainerTestSuite (1.96s)
    --- FAIL: TestContainerTestSuite/TestContainer_IsPrivileged_Privileged (0.17s)
    --- FAIL: TestContainerTestSuite/TestContainer_IsPrivileged_Unprivileged (0.13s)
    --- FAIL: TestContainerTestSuite/TestContainer_LoadFromDB (0.17s)
    --- FAIL: TestContainerTestSuite/TestContainer_LogPath (0.12s)
    --- FAIL: TestContainerTestSuite/TestContainer_Path_Regular (0.18s)
    --- FAIL: TestContainerTestSuite/TestContainer_ProfilesDefault (0.12s)
    --- FAIL: TestContainerTestSuite/TestContainer_ProfilesMulti (0.12s)
    --- FAIL: TestContainerTestSuite/TestContainer_ProfilesOverwriteDefaultNic (0.20s)
    --- FAIL: TestContainerTestSuite/TestContainer_Rename (0.13s)
    --- FAIL: TestContainerTestSuite/TestContainer_findIdmap_isolated (0.13s)
    --- FAIL: TestContainerTestSuite/TestContainer_findIdmap_maxed (0.13s)
    --- FAIL: TestContainerTestSuite/TestContainer_findIdmap_mixed (0.22s)
    --- FAIL: TestContainerTestSuite/TestContainer_findIdmap_raw (0.12s)
=== RUN   TestParseAddr
2021/04/05 22:27:21 Running test #0: Single port
2021/04/05 22:27:21 Running test #1: Multiple ports
2021/04/05 22:27:21 Running test #2: Port range
2021/04/05 22:27:21 Running test #3: Mixed ports and port ranges
2021/04/05 22:27:21 Running test #4: UDP
2021/04/05 22:27:21 Running test #5: Unix socket
2021/04/05 22:27:21 Running test #6: Abstract unix socket
2021/04/05 22:27:21 Running test #7: Unknown connection type
2021/04/05 22:27:21 Running test #8: Valid IPv6 address (1)
2021/04/05 22:27:21 Running test #9: Valid IPv6 address (2)
2021/04/05 22:27:21 Running test #10: Valid IPv6 address (3)
2021/04/05 22:27:21 Running test #11: Valid IPv6 address (4)
2021/04/05 22:27:21 Running test #12: Invalid IPv6 address (1)
2021/04/05 22:27:21 Running test #13: Invalid IPv6 address (2)
--- PASS: TestParseAddr (0.01s)
FAIL
exit status 1
FAIL    github.com/lxc/lxd/lxd  3.012s
error: Bad exit status from /var/tmp/rpm-tmp.4sXjbG (%check)

No idea what's the root cause here...

When checking the COPR hw_info.log it looks like the architecture is only emulated:

CPU info:
Architecture:                    i686
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              2
Core(s) per socket:              1
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           79
Model name:                      Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
Stepping:                        1
CPU MHz:                         2701.638
CPU max MHz:                     3000.0000
CPU min MHz:                     1200.0000
BogoMIPS:                        4600.13
Hypervisor vendor:               Xen
Virtualization type:             full
L1d cache:                       32 KiB
L1i cache:                       32 KiB
L2 cache:                        256 KiB
L3 cache:                        45 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx xsaveopt

Memory:
              total        used        free      shared  buff/cache   available
Mem:       15610604      551256    13889660      578452     1169688    14199596
Swap:     447088940           0   447088940

Storage:
Filesystem         Size  Used Avail Use% Mounted on
mock_chroot_tmpfs  151G  231M  151G   1% /var/lib/mock/fedora-33-armv7hl-1617657474.940167/root