Description
Description
The containerd builds in Fedora have started to fail on just the ppc64le architecture.
- https://koji.fedoraproject.org/koji/taskinfo?taskID=32749298
- https://kojipkgs.fedoraproject.org/work/tasks/9337/32749337/build.log
Back in January this same version of containerd (1.2.1) passed all the tests on all architectures, including ppc64le.
- https://koji.fedoraproject.org/koji/taskinfo?taskID=31813189
- https://kojipkgs.fedoraproject.org/packages/containerd/1.2.1/1.fc30/data/logs/ppc64le/build.log
The big thing that sticks out to me as different between the builds is that the build that passed was using golang-1.11.4-1.fc30.ppc64le, but now the buildroot has moved on to golang-1.12-0.beta2.2.fc30.1.ppc64le.
I also did a scratch build with 1.2.3 to see if this had already been resolved, but I got the same error.
- https://koji.fedoraproject.org/koji/taskinfo?taskID=32749106
- https://kojipkgs.fedoraproject.org/work/tasks/9108/32749108/build.log
Steps to reproduce the issue:
go testwithin themetadatadirectory on ppc64le architecture
Describe the results you received:
Testing: "/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/metadata"
+ GOPATH=/builddir/build/BUILD/containerd-1.2.1/_build:/usr/share/gocode
+ go test -buildmode pie -compiler gc -ldflags '-extldflags '\''-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '\'''
unexpected fault address 0x1249289f0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x1 addr=0x1249289f0 pc=0x124e59130]
goroutine 5 [running]:
runtime.throw(0x1253e7528, 0x5)
/usr/lib/golang/src/runtime/panic.go:617 +0x68 fp=0xc0001b50f0 sp=0xc0001b50b0 pc=0x124e7b988
runtime.sigpanic()
/usr/lib/golang/src/runtime/signal_unix.go:397 +0x464 fp=0xc0001b5130 sp=0xc0001b50f0 pc=0x124e947c4
runtime.mapiterinit(0x1249289b0, 0xc0001cc2d0, 0xc0001b5328)
/usr/lib/golang/src/runtime/map.go:823 +0xa0 fp=0xc0001b5180 sp=0xc0001b5150 pc=0x124e59130
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*Bucket).spill(0xc00006d4c0, 0xc0001cc200, 0xc0001b5530)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/bucket.go:526 +0x80 fp=0xc0001b5388 sp=0xc0001b5180 pc=0x125055bd0
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*Bucket).spill(0xc00006d440, 0xc0001cc200, 0xc0001b5738)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/bucket.go:535 +0x308 fp=0xc0001b5590 sp=0xc0001b5388 pc=0x125055e58
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*Bucket).spill(0xc00006d3c0, 0xc0001cc100, 0xc0001b5940)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/bucket.go:535 +0x308 fp=0xc0001b5798 sp=0xc0001b5590 pc=0x125055e58
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*Bucket).spill(0xc00006d340, 0xc0001cc100, 0xc0001b5b48)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/bucket.go:535 +0x308 fp=0xc0001b59a0 sp=0xc0001b5798 pc=0x125055e58
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*Bucket).spill(0xc0001b81d8, 0x730d88b, 0x125c0a520)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/bucket.go:535 +0x308 fp=0xc0001b5ba8 sp=0xc0001b59a0 pc=0x125055e58
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*Tx).Commit(0xc0001b81c0, 0x0, 0x0)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/tx.go:160 +0xd0 fp=0xc0001b5ce8 sp=0xc0001b5ba8 pc=0x125063270
github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*DB).Update(0xc000156000, 0xc0001b5ed8, 0x0, 0x0)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/db.go:677 +0x108 fp=0xc0001b5d48 sp=0xc0001b5ce8 pc=0x12505af88
github.com/containerd/containerd/metadata.TestContainersList(0xc0000c2400)
/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/metadata/containers_test.go:74 +0x4e0 fp=0xc0001b5f70 sp=0xc0001b5d48 pc=0x1253b3290
testing.tRunner(0xc0000c2400, 0x12576e090)
/usr/lib/golang/src/testing/testing.go:862 +0xdc fp=0xc0001b5fb0 sp=0xc0001b5f70 pc=0x124f4cb5c
runtime.goexit()
/usr/lib/golang/src/runtime/asm_ppc64x.s:856 +0x4 fp=0xc0001b5fb0 sp=0xc0001b5fb0 pc=0x124eaeaa4
created by testing.(*T).Run
/usr/lib/golang/src/testing/testing.go:913 +0x304
goroutine 1 [chan receive]:
testing.(*T).Run(0xc0000c2400, 0x1253f100c, 0x12, 0x12576e090, 0x125bc7f00)
/usr/lib/golang/src/testing/testing.go:914 +0x320
testing.runTests.func1(0xc0000c2300)
/usr/lib/golang/src/testing/testing.go:1154 +0x8c
testing.tRunner(0xc0000c2300, 0xc0000a9dd8)
/usr/lib/golang/src/testing/testing.go:862 +0xdc
testing.runTests(0xc00014f6a0, 0x125bc94c0, 0x10, 0x10, 0x0)
/usr/lib/golang/src/testing/testing.go:1152 +0x2a0
testing.(*M).Run(0xc00000c300, 0x0)
/usr/lib/golang/src/testing/testing.go:1069 +0x174
main.main()
_testmain.go:74 +0x150
exit status 2
FAIL github.com/containerd/containerd/metadata 0.128s
Describe the results you expected:
Testing: "/builddir/build/BUILD/containerd-1.2.1/_build/src/github.com/containerd/containerd/metadata"
+ GOPATH=/builddir/build/BUILD/containerd-1.2.1/_build:/usr/share/gocode
+ go test -buildmode pie -compiler gc -ldflags '-extldflags '\''-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '\'''
PASS
ok github.com/containerd/containerd/metadata 27.029s
Output of containerd --version:
containerd github.com/containerd/containerd 1.2.1
(same error with 1.2.3 as well)
Extra info
If ppc64le or golang 1.12 are not (yet) supported by the project, I'm fine with that, I just wanted to at least share the info. I have the option of disabling the tests on just ppc64le to get the build to pass, if needed.
See also #2996.