Vab820 / golang push failure


#1

Hi, I’m trying to try out the Go Docker image for the VAB-820, and run into the issue of not being able to push to it.

I’m using the resin-golang-seed project with the only change of setting the base image explicitely as

FROM resin/vab820-quad-golang:latest

Unfortunately it looks like I cannot push to it. If I git push to the master branch, I have this log:

$git push resin master
Counting objects: 44, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (34/34), done.
Writing objects: 100% (44/44), 29.16 KiB | 0 bytes/s, done.
Total 44 (delta 4), reused 0 (delta 0)

Starting build for imrehg/gotest
Building on 'local'
-----> Dockerfile application detected
Step 0 : FROM resin/vab820-quad-golang:latest
 ---> ccb7a5b8ee0e
Step 1 : ENV INITSYSTEM on
 ---> Running in 9dcf60617fd6
 ---> c3dab334c80f
Removing intermediate container 9dcf60617fd6
Step 2 : COPY src/ $GOPATH/src
 ---> a542b4d6f235
Removing intermediate container 9ece5112e5c3
Step 3 : COPY vendor $GOPATH/vendor
 ---> f31f53a77245
Removing intermediate container ce8cb20fcc4a
Step 4 : RUN cd $GOPATH
 ---> Running in b6c27c493f98
 ---> c688db9be3a6
Removing intermediate container b6c27c493f98
Step 5 : RUN go get github.com/constabulary/gb
 ---> Running in ecf48e4c9b06
fatal error: rt_sigaction failure

runtime stack:
runtime.throw(0x485f20, 0x14)
	/go/src/runtime/panic.go:527 +0x78
runtime.setsigstack(0x21)
	/go/src/runtime/os1_linux.go:311 +0xf8
runtime.initsig()
	/go/src/runtime/signal1_unix.go:62 +0x114
runtime.mstart1()
	/go/src/runtime/proc1.go:717 +0xd4
runtime.mstart()
	/go/src/runtime/proc1.go:691 +0x84

goroutine 1 [runnable]:
runtime.main()
	/go/src/runtime/proc.go:28
runtime.goexit()
	/go/src/runtime/asm_arm.s:1036 +0x4

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	/go/src/runtime/asm_arm.s:1036 +0x4
Removing intermediate container ecf48e4c9b06

       Error while processing push: Error: The command [/bin/sh -c go get github.com/constabulary/gb] returned a non-zero code: 2


remote: error: hook declined to update refs/heads/master
To imrehg@git.resin.io:imrehg/gotest.git
 ! [remote rejected] master -> master (hook declined)

Quick google suggest that fatal error: rt_sigaction failure is a QEMU-related failure. Based on this I tried to push to master-arm, as I remember that was supposed to address the QEMU’s issues for builds. I know that the VAB-820 wasn’t in the list where I could do that, just gave it a try to see what happens. It got further in the process and then died differently:

$git push resin master:master-arm
Counting objects: 44, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (34/34), done.
Writing objects: 100% (44/44), 29.16 KiB | 0 bytes/s, done.
Total 44 (delta 4), reused 0 (delta 0)

Starting build for imrehg/gotest
Building on 'arm.builders.resin.io'
-----> Dockerfile application detected
Step 0 : FROM resin/vab820-quad-golang:latest
       Still working...
       Still working...
 ---> ccb7a5b8ee0e
Step 1 : ENV INITSYSTEM on
 ---> Running in 882da729b846
       Still working...
 ---> 2a83a88edefe
Removing intermediate container 882da729b846
Step 2 : COPY src/ $GOPATH/src
       Still working...
 ---> 92b57cb94bd9
Removing intermediate container a6034f01b37d
Step 3 : COPY vendor $GOPATH/vendor
       Still working...
       Still working...
 ---> 7aa0cabcb55b
Removing intermediate container 155d2c940647
Step 4 : RUN cd $GOPATH
 ---> Running in bb906e57830b
Removing intermediate container bb906e57830b

       Error while processing push: Error: [8] System error: mountpoint for blkio not found


remote: error: hook declined to update refs/heads/master-arm
To imrehg@git.resin.io:imrehg/gotest.git
 ! [remote rejected] master -> master-arm (hook declined)

Any suggestions? Just probing things, so I know that this is all very experimental (the hardware, Go support, and ARM builders).
Cheers!


#2

Hey Greg, thanks for the awesome investigative work! So the problem of the normal builders is indeed QEMU and the solution is indeed going to the ARM builders. The error you see on ARM is the error you would have seen on the normal builders, had they worked. It appears to be something with the way our containers are structured. We’re looking into it and will come back when we know more. Again, thanks for pointing this oout, we’re pumped up to get it working :smiley:


#3

Hey, just tried it out again, and now seems to be working on master-arm for both the VAB-820 and Raspberry Pi 2. :smile: Just FYI.


#4

Yeah I think it was something to do with the version of Docker one of the builders was using. It might have been fixed in general, or you may just have been lucky to hit the right builder :smiley: