Today, we were going to build a gohan container on the fly.
Sadly, it failed. By make test
through make all
The main problem is etcd. It merged a PR 9 hours ago.
It makes etcd crash on bootstrap by a panic. Then a gohan's test failed.
2016-01-08 09:40:32.106330 I | etcdserver: published {Name:default ClientURLs:[http://localhost:2379 http://localhost:4001]} to cluster 7e27652122e8b2ae
2016-01-08 09:40:32.106948 I | etcdserver: setting up the initial cluster version to 2.3
2016-01-08 09:40:32.108872 N | etcdserver: set the initial cluster version to 2.3
panic: interface conversion: net.Conn is *netutil.limitListenerConn, not *net.TCPConn
goroutine 69 [running]:
github.com/coreos/etcd/pkg/transport.(*keepaliveListener).Accept(0xc2081290e0, 0x0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/pkg/transport/keepalive_listener.go:53 +0xe3
net/http.(*Server).Serve(0xc208041a40, 0x2ba95391e860, 0xc2081290e0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1728 +0x92
github.com/coreos/etcd/etcdmain.serveHTTP(0x2ba95391e860, 0xc2081290e0, 0x2ba95391f868, 0xc20810b4e0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/etcdmain/http.go:39 +0x1be
github.com/coreos/etcd/etcdmain.func·006(0x2ba95391e860, 0xc2081290e0)
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:326 +0x80
created by github.com/coreos/etcd/etcdmain.startEtcd
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:327 +0x25a8
goroutine 1 [chan receive]:
github.com/coreos/etcd/etcdmain.Main()
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:194 +0x18d1
main.main()
/go/src/github.com/coreos/etcd/main.go:29 +0x1b
goroutine 9 [chan receive]:
github.com/coreos/etcd/pkg/logutil.(*MergeLogger).outputLoop(0xc20801da80)
/go/src/github.com/coreos/etcd/pkg/logutil/merge_logger.go:174 +0x89
created by github.com/coreos/etcd/pkg/logutil.NewMergeLogger
/go/src/github.com/coreos/etcd/pkg/logutil/merge_logger.go:92 +0xc9
goroutine 17 [syscall]:
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:21 +0x1f
created by os/signal.init·1
/usr/local/go/src/os/signal/signal_unix.go:27 +0x35
goroutine 18 [chan receive]:
github.com/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog.(*loggingT).flushDaemon(0x1248620)
/go/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog/glog.go:879 +0x78
created by github.com/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog.init·1
/go/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog/glog.go:410 +0x2a7
goroutine 33 [syscall, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2232 +0x1
goroutine 46 [chan receive]:
github.com/coreos/etcd/pkg/logutil.(*MergeLogger).outputLoop(0xc20810a480)
/go/src/github.com/coreos/etcd/pkg/logutil/merge_logger.go:174 +0x89
created by github.com/coreos/etcd/pkg/logutil.NewMergeLogger
/go/src/github.com/coreos/etcd/pkg/logutil/merge_logger.go:92 +0xc9
goroutine 50 [select]:
github.com/coreos/etcd/raft.(*node).run(0xc20803a960, 0xc2081081c0)
/go/src/github.com/coreos/etcd/raft/node.go:275 +0xe8e
created by github.com/coreos/etcd/raft.StartNode
/go/src/github.com/coreos/etcd/raft/node.go:178 +0x4b6
goroutine 51 [select]:
github.com/coreos/etcd/etcdserver.(*EtcdServer).run(0xc208034680)
/go/src/github.com/coreos/etcd/etcdserver/server.go:556 +0x4a1
created by github.com/coreos/etcd/etcdserver.(*EtcdServer).start
/go/src/github.com/coreos/etcd/etcdserver/server.go:429 +0x44c
goroutine 53 [select]:
github.com/coreos/etcd/etcdserver.(*EtcdServer).purgeFile(0xc208034680)
/go/src/github.com/coreos/etcd/etcdserver/server.go:440 +0x4bc
created by github.com/coreos/etcd/etcdserver.(*EtcdServer).Start
/go/src/github.com/coreos/etcd/etcdserver/server.go:406 +0x79
goroutine 54 [select]:
github.com/coreos/etcd/etcdserver.monitorFileDescriptor(0xc208040ea0)
/go/src/github.com/coreos/etcd/etcdserver/metrics.go:81 +0x4d8
created by github.com/coreos/etcd/etcdserver.(*EtcdServer).Start
/go/src/github.com/coreos/etcd/etcdserver/server.go:407 +0x9a
goroutine 55 [select]:
github.com/coreos/etcd/etcdserver.(*EtcdServer).monitorVersions(0xc208034680)
/go/src/github.com/coreos/etcd/etcdserver/server.go:1193 +0x3eb
created by github.com/coreos/etcd/etcdserver.(*EtcdServer).Start
/go/src/github.com/coreos/etcd/etcdserver/server.go:408 +0xb4
goroutine 56 [select]:
github.com/coreos/etcd/etcdserver/etcdhttp.capabilityLoop(0xc208034680)
/go/src/github.com/coreos/etcd/etcdserver/etcdhttp/capability.go:68 +0x1ad
created by github.com/coreos/etcd/etcdserver/etcdhttp.NewClientHandler
/go/src/github.com/coreos/etcd/etcdserver/etcdhttp/client.go:61 +0x58
goroutine 58 [select]:
github.com/coreos/etcd/etcdserver.func·002()
/go/src/github.com/coreos/etcd/etcdserver/raft.go:139 +0xb35
created by github.com/coreos/etcd/etcdserver.(*raftNode).start
/go/src/github.com/coreos/etcd/etcdserver/raft.go:196 +0x180
goroutine 59 [select]:
github.com/coreos/etcd/etcdserver.func·005()
/go/src/github.com/coreos/etcd/etcdserver/server.go:506 +0x563
created by github.com/coreos/etcd/etcdserver.(*EtcdServer).startApplier
/go/src/github.com/coreos/etcd/etcdserver/server.go:524 +0x14a
goroutine 60 [select]:
github.com/coreos/etcd/pkg/fileutil.func·001()
/go/src/github.com/coreos/etcd/pkg/fileutil/purge.go:72 +0x658
created by github.com/coreos/etcd/pkg/fileutil.PurgeFile
/go/src/github.com/coreos/etcd/pkg/fileutil/purge.go:78 +0x231
goroutine 61 [select]:
github.com/coreos/etcd/pkg/fileutil.func·001()
/go/src/github.com/coreos/etcd/pkg/fileutil/purge.go:72 +0x658
created by github.com/coreos/etcd/pkg/fileutil.PurgeFile
/go/src/github.com/coreos/etcd/pkg/fileutil/purge.go:78 +0x231
goroutine 66 [IO wait]:
net.(*pollDesc).Wait(0xc20810dd40, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc20810dd40, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc20810dce0, 0x0, 0x2ba95391b278, 0xc208129330)
/usr/local/go/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080381f0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc2080381f0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:244 +0x4c
github.com/coreos/etcd/pkg/transport.(*rwTimeoutListener).Accept(0xc20812a680, 0x0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/pkg/transport/timeout_listener.go:44 +0x7a
net/http.(*Server).Serve(0xc208041920, 0x2ba95391e7f0, 0xc20812a680, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1728 +0x92
github.com/coreos/etcd/etcdmain.serveHTTP(0x2ba95391e7f0, 0xc20812a680, 0x2ba95391f750, 0xc20812db30, 0x45d964b800, 0x0, 0x0)
/go/src/github.com/coreos/etcd/etcdmain/http.go:39 +0x1be
github.com/coreos/etcd/etcdmain.func·005(0x2ba95391e7f0, 0xc20812a680)
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:318 +0x5a
created by github.com/coreos/etcd/etcdmain.startEtcd
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:319 +0x245c
goroutine 67 [IO wait]:
net.(*pollDesc).Wait(0xc20810de20, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc20810de20, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc20810ddc0, 0x0, 0x2ba95391b278, 0xc208129360)
/usr/local/go/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080381f8, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc2080381f8, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:244 +0x4c
github.com/coreos/etcd/pkg/transport.(*rwTimeoutListener).Accept(0xc20812a7e0, 0x0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/pkg/transport/timeout_listener.go:44 +0x7a
net/http.(*Server).Serve(0xc208041980, 0x2ba95391e7f0, 0xc20812a7e0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1728 +0x92
github.com/coreos/etcd/etcdmain.serveHTTP(0x2ba95391e7f0, 0xc20812a7e0, 0x2ba95391f750, 0xc20812db30, 0x45d964b800, 0x0, 0x0)
/go/src/github.com/coreos/etcd/etcdmain/http.go:39 +0x1be
github.com/coreos/etcd/etcdmain.func·005(0x2ba95391e7f0, 0xc20812a7e0)
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:318 +0x5a
created by github.com/coreos/etcd/etcdmain.startEtcd
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:319 +0x245c
goroutine 68 [IO wait]:
net.(*pollDesc).Wait(0xc20810df00, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc20810df00, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc20810dea0, 0x0, 0x2ba95391b278, 0xc208129390)
/usr/local/go/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc208038200, 0xa869c0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc208038200, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:244 +0x4c
github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/netutil.(*limitListener).Accept(0xc20812a960, 0x0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/netutil/listen.go:30 +0x9e
github.com/coreos/etcd/pkg/transport.(*keepaliveListener).Accept(0xc208128fb0, 0x0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/pkg/transport/keepalive_listener.go:49 +0x71
net/http.(*Server).Serve(0xc2080419e0, 0x2ba95391e860, 0xc208128fb0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1728 +0x92
github.com/coreos/etcd/etcdmain.serveHTTP(0x2ba95391e860, 0xc208128fb0, 0x2ba95391f868, 0xc20810b4e0, 0x0, 0x0, 0x0)
/go/src/github.com/coreos/etcd/etcdmain/http.go:39 +0x1be
github.com/coreos/etcd/etcdmain.func·006(0x2ba95391e860, 0xc208128fb0)
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:326 +0x80
created by github.com/coreos/etcd/etcdmain.startEtcd
/go/src/github.com/coreos/etcd/etcdmain/etcd.go:327 +0x25a8
goroutine 70 [chan receive]:
github.com/coreos/etcd/pkg/osutil.func·001()
/go/src/github.com/coreos/etcd/pkg/osutil/interrupt_unix.go:51 +0x68
created by github.com/coreos/etcd/pkg/osutil.HandleInterrupts
/go/src/github.com/coreos/etcd/pkg/osutil/interrupt_unix.go:72 +0x1f6
Running Suite: Server Suite
===========================
Random Seed: 1452246034 - Will randomize all specs
Will run 39 of 39 specs
•[It] should work
/go/src/github.com/cloudwan/gohan/server/server_test.go:581
[AfterEach] Server package test
/go/src/github.com/cloudwan/gohan/server/server_test.go:65
------------------------------
• Failure [0.008 seconds]
Server package test
/go/src/github.com/cloudwan/gohan/server/server_test.go:922
Sync
/go/src/github.com/cloudwan/gohan/server/server_test.go:582
should work [It]
/go/src/github.com/cloudwan/gohan/server/server_test.go:581
Expected success, but got an error:
<*etcd.EtcdError | 0xc209452990>: {
ErrorCode: 501,
Message: "All the given peers are not reachable",
Cause: "Tried to connect to each peer twice and failed",
Index: 0,
}
501: All the given peers are not reachable (Tried to connect to each peer twice and failed) [0]
/go/src/github.com/cloudwan/gohan/server/server_test.go:551
Full Stack Trace
/go/src/github.com/cloudwan/gohan/server/server_test.go:551 (0x511125)
func.050: Expect(server.Sync()).To(Succeed())
/go/src/github.com/cloudwan/gohan/server/server_suite_test.go:50 (0x4f8071)
TestServer: RunSpecs(t, "Server Suite")
/usr/local/go/src/testing/testing.go:447 (0x4d913f)
tRunner: test.F(t)
/usr/local/go/src/runtime/asm_amd64.s:2232 (0x4a4401)
goexit:
etcd has responsibility for it. But in gohan's Dockerfile, it could use stable version of etcd.
(I agree golang lacks version specification for go get, but you can clone stable version of etcd into your environment before)
This is not only for etcd. gohan's Dockerfile has some go get
dependencies.