When I build snapd with -buildmode=pie in artful on i386 and then "snap install core" on a fresh system the system panics. Building without "-buildmode=pie" works fine.
See also https://forum.snapcraft.io/t/artful-i386-panics/
Here is the panic log:
2017/08/16 08:25:54.036850 daemon.go:258: started snapd/unknown (series 16; classic) ubuntu/17.10 (i386) linux/4.11.0-13-generic.
2017/08/16 08:25:54.037665 snapmgr.go:429: No snaps to auto-refresh found
2017/08/16 08:26:00.480739 api.go:987: Installing snap "core" revision unset
runtime: pointer 0x1158dc31 to unallocated span idx=0x8ac6 span.base()=0x1158c000 span.limit=0x1158df80 span.state=0
runtime: found in object at *(0x11145578+0x4)
object=0x11145578 k=0x88a2 s.base()=0x11140000 s.limit=0x0 s.sizeclass=0 s.elemsize=0 s.state=_MSpanStack
*(object+0) = 0x115b7540
*(object+4) = 0x1158dc31 <==
fatal error: found bad pointer in Go heap (incorrect use of unsafe or cgo?)
runtime stack:
runtime.throw(0xa28bba, 0x3e)
/usr/lib/go-1.8/src/runtime/panic.go:596 +0x87
runtime.heapBitsForObject(0x1158dc31, 0x11145578, 0x4, 0xffa48ab, 0x0, 0xb6366740, 0x1111c92c, 0x22)
/usr/lib/go-1.8/src/runtime/mbitmap.go:433 +0x2b3
runtime.scanblock(0x11145578, 0x18, 0xa757d0, 0x1111c92c)
/usr/lib/go-1.8/src/runtime/mgcmark.go:1220 +0xc5
runtime.scanframeworker(0xb4ffe0f0, 0xb4ffe164, 0x1111c92c)
/usr/lib/go-1.8/src/runtime/mgcmark.go:925 +0xae
runtime.scanstack.func1(0xb4ffe0f0, 0x0, 0xb4ffdf01)
/usr/lib/go-1.8/src/runtime/mgcmark.go:819 +0x57
runtime.gentraceback(0xffffffff, 0x11145574, 0x0, 0x112a8960, 0x0, 0x0, 0x7fffffff, 0xb4ffe224, 0x0, 0x0, ...)
/usr/lib/go-1.8/src/runtime/traceback.go:378 +0xf44
runtime.scanstack(0x112a8960, 0x1111c92c)
/usr/lib/go-1.8/src/runtime/mgcmark.go:842 +0x21d
runtime.scang(0x112a8960, 0x1111c92c)
/usr/lib/go-1.8/src/runtime/proc.go:866 +0x21a
runtime.markroot.func1()
/usr/lib/go-1.8/src/runtime/mgcmark.go:264 +0x5e
runtime.systemstack(0xb4ffe2c8)
/usr/lib/go-1.8/src/runtime/asm_386.s:353 +0x9b
runtime.markroot(0x1111c92c, 0x11)
/usr/lib/go-1.8/src/runtime/mgcmark.go:269 +0x1f9
runtime.gcDrain(0x1111c92c, 0x5)
/usr/lib/go-1.8/src/runtime/mgcmark.go:1051 +0xff
runtime.gcBgMarkWorker.func2()
/usr/lib/go-1.8/src/runtime/mgc.go:1532 +0xbf
runtime.systemstack(0x1111c000)
/usr/lib/go-1.8/src/runtime/asm_386.s:337 +0x73
runtime.mstart()
/usr/lib/go-1.8/src/runtime/proc.go:1132
goroutine 49 [GC worker (idle)]:
runtime.systemstack_switch()
/usr/lib/go-1.8/src/runtime/asm_386.s:291 fp=0x1111ffa0 sp=0x1111ff9c
runtime.gcBgMarkWorker(0x1111c000)
/usr/lib/go-1.8/src/runtime/mgc.go:1537 +0x1f2 fp=0x1111ffe8 sp=0x1111ffa0
runtime.goexit()
/usr/lib/go-1.8/src/runtime/asm_386.s:1629 +0x1 fp=0x1111ffec sp=0x1111ffe8
created by runtime.gcBgMarkStartWorkers
/usr/lib/go-1.8/src/runtime/mgc.go:1412 +0x84
goroutine 1 [select]:
main.run(0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/cmd/snapd/main.go:76 +0x422
main.main()
/home/ubuntu/go/src/github.com/snapcore/snapd/cmd/snapd/main.go:49 +0x24
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/lib/go-1.8/src/runtime/asm_386.s:1629 +0x1
goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
/usr/lib/go-1.8/src/runtime/sigqueue.go:116 +0x17c
os/signal.loop()
/usr/lib/go-1.8/src/os/signal/signal_unix.go:22 +0x1b
created by os/signal.init.1
/usr/lib/go-1.8/src/os/signal/signal_unix.go:28 +0x3d
goroutine 7 [select]:
github.com/snapcore/snapd/overlord.(*Overlord).Loop.func1(0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/overlord.go:242 +0x194
github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).run(0x112659e0, 0x11274660)
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x22
created by github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).Go
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0xc2
goroutine 8 [IO wait]:
net.runtime_pollWait(0xb6360420, 0x72, 0x6d1325)
/usr/lib/go-1.8/src/runtime/netpoll.go:164 +0x4c
net.(*pollDesc).wait(0x112696fc, 0x72, 0x112c4650, 0x6d1385)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:75 +0x2c
net.(*pollDesc).waitRead(0x112696fc, 0xffffffff, 0x0)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:80 +0x2a
net.(*netFD).accept(0x112696c0, 0x0, 0xe70d70, 0x112c4660)
/usr/lib/go-1.8/src/net/fd_unix.go:430 +0x16b
net.(*UnixListener).accept(0x1126d1e0, 0x9f6ff1, 0x1128ce4c, 0x1128ce20)
/usr/lib/go-1.8/src/net/unixsock_posix.go:162 +0x28
net.(*UnixListener).Accept(0x1126d1e0, 0x112939c0, 0x58dddf, 0x58c803, 0x56db7a)
/usr/lib/go-1.8/src/net/unixsock.go:237 +0x3d
github.com/snapcore/snapd/daemon.(*ucrednetListener).Accept(0x112741b0, 0x0, 0x0, 0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/ucrednet.go:72 +0x4b
net/http.(*Server).Serve(0x11217200, 0xe74260, 0x112741b0, 0x0, 0x0)
/usr/lib/go-1.8/src/net/http/server.go:2643 +0x1d7
github.com/snapcore/snapd/daemon.(*shutdownServer).Serve(0x1128ce40, 0x112746f8, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/daemon.go:305 +0x32
github.com/snapcore/snapd/daemon.(*Daemon).Start.func2(0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/daemon.go:394 +0x37
github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).run(0x1127a264, 0x11274668)
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x22
created by github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).Go
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0xc2
goroutine 9 [select, locked to thread]:
runtime.gopark(0xc5450c, 0x0, 0xa04b08, 0x6, 0x18, 0x2)
/usr/lib/go-1.8/src/runtime/proc.go:271 +0x110
runtime.selectgoImpl(0x11125fa0, 0x0, 0xc)
/usr/lib/go-1.8/src/runtime/select.go:423 +0x10d3
runtime.selectgo(0x11125fa0)
/usr/lib/go-1.8/src/runtime/select.go:238 +0xf
runtime.ensureSigM.func1()
/usr/lib/go-1.8/src/runtime/signal_unix.go:434 +0x2b8
runtime.goexit()
/usr/lib/go-1.8/src/runtime/asm_386.s:1629 +0x1
goroutine 10 [IO wait]:
net.runtime_pollWait(0xb63603a8, 0x72, 0x6d1325)
/usr/lib/go-1.8/src/runtime/netpoll.go:164 +0x4c
net.(*pollDesc).wait(0x112697bc, 0x72, 0x11289f0c, 0x6d1385)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:75 +0x2c
net.(*pollDesc).waitRead(0x112697bc, 0xffffffff, 0x0)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:80 +0x2a
net.(*netFD).accept(0x11269780, 0x0, 0xe70d70, 0x112c4000)
/usr/lib/go-1.8/src/net/fd_unix.go:430 +0x16b
net.(*UnixListener).accept(0x1126d240, 0x1128d520, 0xbda560, 0xe68740)
/usr/lib/go-1.8/src/net/unixsock_posix.go:162 +0x28
net.(*UnixListener).Accept(0x1126d240, 0x1128d500, 0xbda560, 0xe68740, 0xc2df80)
/usr/lib/go-1.8/src/net/unixsock.go:237 +0x3d
net/http.(*Server).Serve(0x11217180, 0xe74580, 0x1126d240, 0x0, 0x0)
/usr/lib/go-1.8/src/net/http/server.go:2643 +0x1d7
github.com/snapcore/snapd/daemon.(*shutdownServer).Serve(0x1128ce00, 0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/daemon.go:305 +0x32
github.com/snapcore/snapd/daemon.(*Daemon).Start.func2.1(0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/daemon.go:386 +0x2c
github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).run(0x1127a264, 0x112746f8)
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x22
created by github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).Go
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0xc2
goroutine 11 [semacquire]:
sync.runtime_SemacquireMutex(0x11268604)
/usr/lib/go-1.8/src/runtime/sema.go:62 +0x2a
sync.(*Mutex).Lock(0x11268600)
/usr/lib/go-1.8/src/sync/mutex.go:87 +0xbd
github.com/snapcore/snapd/overlord/state.(*State).Lock(0x11268600)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/state/state.go:129 +0x24
github.com/snapcore/snapd/daemon.(*Command).ServeHTTP(0xe6b8a0, 0xe74280, 0x1156a010, 0x114ef580)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/daemon.go:122 +0x34
github.com/snapcore/snapd/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0x112765a0, 0xe74280, 0x1156a010, 0x114ef580)
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/github.com/gorilla/mux/mux.go:103 +0x1c3
github.com/snapcore/snapd/daemon.logit.func1(0xe74640, 0x114e6000, 0x114ef580)
/home/ubuntu/go/src/github.com/snapcore/snapd/daemon/daemon.go:181 +0xe2
net/http.HandlerFunc.ServeHTTP(0x11289e90, 0xe74640, 0x114e6000, 0x114ef580)
/usr/lib/go-1.8/src/net/http/server.go:1942 +0x35
net/http.serverHandler.ServeHTTP(0x11217200, 0xe74640, 0x114e6000, 0x114ef580)
/usr/lib/go-1.8/src/net/http/server.go:2568 +0x71
net/http.(*conn).serve(0x11293980, 0xe75060, 0x1128d9c0)
/usr/lib/go-1.8/src/net/http/server.go:1825 +0x5d3
created by net/http.(*Server).Serve
/usr/lib/go-1.8/src/net/http/server.go:2668 +0x264
goroutine 22 [runnable (scan)]:
bytes.(*Buffer).WriteString(0x115b7540, 0x1158dc31, 0x4, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/bytes/buffer.go:144 +0xa4
encoding/json.(*encodeState).string(0x115b7540, 0x114d9240, 0x9709dc, 0x114d9201, 0x9709dc)
/usr/lib/go-1.8/src/encoding/json/encode.go:893 +0xfb
encoding/json.stringEncoder(0x115b7540, 0xbc70c0, 0x1149ab70, 0x198, 0x100)
/usr/lib/go-1.8/src/encoding/json/encode.go:608 +0x183
encoding/json.(*structEncoder).encode(0x1128d7e0, 0x115b7540, 0xc05980, 0x1149ab70, 0x199, 0x6b0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:645 +0x1b0
encoding/json.(*structEncoder).(encoding/json.encode)-fm(0x115b7540, 0xc05980, 0x1149ab70, 0x199, 0x11490100)
/usr/lib/go-1.8/src/encoding/json/encode.go:659 +0x53
encoding/json.(*ptrEncoder).encode(0x112748d0, 0x115b7540, 0xb90920, 0x114eff20, 0x96, 0x6b0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:786 +0xbf
encoding/json.(*ptrEncoder).(encoding/json.encode)-fm(0x115b7540, 0xb90920, 0x114eff20, 0x96, 0x100)
/usr/lib/go-1.8/src/encoding/json/encode.go:791 +0x53
encoding/json.(*structEncoder).encode(0x1128d700, 0x115b7540, 0xc3d3c0, 0x114eff00, 0x99, 0x6b0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:645 +0x1b0
encoding/json.(*structEncoder).(encoding/json.encode)-fm(0x115b7540, 0xc3d3c0, 0x114eff00, 0x99, 0x6a0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:659 +0x53
encoding/json.(*encodeState).reflectValue(0x115b7540, 0xc3d3c0, 0x114eff00, 0x99, 0x100)
/usr/lib/go-1.8/src/encoding/json/encode.go:323 +0x6b
encoding/json.(*encodeState).marshal(0x115b7540, 0xc3d3c0, 0x114eff00, 0xc30100, 0x0, 0x0)
/usr/lib/go-1.8/src/encoding/json/encode.go:296 +0xa3
encoding/json.Marshal(0xc3d3c0, 0x114eff00, 0xc3d3c0, 0x114eff00, 0x28, 0x30, 0x1149ad00)
/usr/lib/go-1.8/src/encoding/json/encode.go:161 +0x67
github.com/snapcore/snapd/overlord/state.(*Task).MarshalJSON(0x114875e0, 0xc4ba00, 0x114875e0, 0xb63605b8, 0x114875e0, 0x1122fe01)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/state/task.go:122 +0x1c4
encoding/json.marshalerEncoder(0x115b6fa0, 0xc4ba00, 0x114875e0, 0x16, 0x11220100)
/usr/lib/go-1.8/src/encoding/json/encode.go:451 +0x84
encoding/json.(*mapEncoder).encode(0x11274790, 0x115b6fa0, 0xbcdca0, 0x1139e748, 0x95, 0x6b0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:690 +0x442
encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0x115b6fa0, 0xbcdca0, 0x1139e748, 0x95, 0x100)
/usr/lib/go-1.8/src/encoding/json/encode.go:706 +0x53
encoding/json.(*structEncoder).encode(0x1128d580, 0x115b6fa0, 0xc1dfa0, 0x1139e740, 0x99, 0x6b0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:645 +0x1b0
encoding/json.(*structEncoder).(encoding/json.encode)-fm(0x115b6fa0, 0xc1dfa0, 0x1139e740, 0x99, 0x6a0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:659 +0x53
encoding/json.(*encodeState).reflectValue(0x115b6fa0, 0xc1dfa0, 0x1139e740, 0x99, 0x100)
/usr/lib/go-1.8/src/encoding/json/encode.go:323 +0x6b
encoding/json.(*encodeState).marshal(0x115b6fa0, 0xc1dfa0, 0x1139e740, 0xc10100, 0x0, 0x0)
/usr/lib/go-1.8/src/encoding/json/encode.go:296 +0xa3
encoding/json.Marshal(0xc1dfa0, 0x1139e740, 0xc1dfa0, 0x1139e740, 0xe9e990, 0x5d4da5, 0x5d4d77)
/usr/lib/go-1.8/src/encoding/json/encode.go:161 +0x67
github.com/snapcore/snapd/overlord/state.(*State).MarshalJSON(0x11268600, 0xc48a60, 0x11268600, 0xb6360558, 0x11268600, 0xc48a01)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/state/state.go:172 +0x97
encoding/json.marshalerEncoder(0x115b6f00, 0xc48a60, 0x11268600, 0x16, 0x6a0100)
/usr/lib/go-1.8/src/encoding/json/encode.go:451 +0x84
encoding/json.(*encodeState).reflectValue(0x115b6f00, 0xc48a60, 0x11268600, 0x16, 0x100)
/usr/lib/go-1.8/src/encoding/json/encode.go:323 +0x6b
encoding/json.(*encodeState).marshal(0x115b6f00, 0xc48a60, 0x11268600, 0x11280100, 0x0, 0x0)
/usr/lib/go-1.8/src/encoding/json/encode.go:296 +0xa3
encoding/json.Marshal(0xc48a60, 0x11268600, 0x58dddf, 0x0, 0x563c96, 0x4, 0x1128d480)
/usr/lib/go-1.8/src/encoding/json/encode.go:161 +0x67
github.com/snapcore/snapd/overlord/state.(*State).checkpointData(0x11268600, 0xc53ebc, 0x11268600, 0x1111c000)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/state/state.go:201 +0x35
github.com/snapcore/snapd/overlord/state.(*State).Unlock(0x11268600)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/state/state.go:225 +0x68
github.com/snapcore/snapd/overlord/snapstate.(*taskProgressAdapter).Finished(0x114f8160)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/snapstate/progress.go:74 +0x69
github.com/snapcore/snapd/store.glob..func1(0xb63688f8, 0x114f8180, 0x114d9240, 0x4, 0x11455980, 0x60, 0x114558c0, 0x59, 0x0, 0x11153e30, ...)
/home/ubuntu/go/src/github.com/snapcore/snapd/store/store.go:1477 +0x6c8
github.com/snapcore/snapd/store.(*Store).Download(0x11153e30, 0xb63688f8, 0x114f8180, 0x114d9240, 0x4, 0x114eb080, 0x23, 0x114eb020, 0xe76e60, 0x114f8160, ...)
/home/ubuntu/go/src/github.com/snapcore/snapd/store/store.go:1364 +0x2a9
github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doDownloadSnap(0x11267540, 0x114875e0, 0x114d57d0, 0x0, 0x984995)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/snapstate/handlers.go:252 +0x22c
github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).(github.com/snapcore/snapd/overlord/snapstate.doDownloadSnap)-fm(0x114875e0, 0x114d57d0, 0x112b2cfd, 0x58dddf)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/snapstate/snapmgr.go:318 +0x31
github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1(0x0, 0x0)
/home/ubuntu/go/src/github.com/snapcore/snapd/overlord/state/taskrunner.go:146 +0x4f
github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).run(0x114d57d0, 0x114cb840)
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x22
created by github.com/snapcore/snapd/vendor/gopkg.in/tomb%2ev2.(*Tomb).Go
/home/ubuntu/go/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0xc2
goroutine 176 [syscall]:
syscall.Syscall(0x3, 0x8, 0x112b2cfd, 0x1, 0x0, 0xff800000, 0x7ff)
/usr/lib/go-1.8/src/syscall/asm_linux_386.s:20 +0x5
syscall.read(0x8, 0x112b2cfd, 0x1, 0x1, 0x72, 0x0, 0x5a8b35)
/usr/lib/go-1.8/src/syscall/zsyscall_linux_386.go:783 +0x46
syscall.Read(0x8, 0x112b2cfd, 0x1, 0x1, 0x1, 0x54a005, 0x54a99d)
/usr/lib/go-1.8/src/syscall/syscall_unix.go:162 +0x3a
net.(*netFD).Read(0x11297680, 0x112b2cfd, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/net/fd_unix.go:246 +0x106
net.(*conn).Read(0x112749e8, 0x112b2cfd, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/net/net.go:181 +0x57
github.com/snapcore/snapd/daemon.(*ucrednetConn).Read(0x112c4640, 0x112b2cfd, 0x1, 0x1, 0x1155f860, 0xe70801, 0x1155f860)
<autogenerated>:29 +0x50
net/http.(*connReader).backgroundRead(0x112b2cf0)
/usr/lib/go-1.8/src/net/http/server.go:656 +0x47
created by net/http.(*connReader).startBackgroundRead
/usr/lib/go-1.8/src/net/http/server.go:652 +0xcc
goroutine 31 [IO wait]:
net.runtime_pollWait(0xb6360240, 0x72, 0x6d1325)
/usr/lib/go-1.8/src/runtime/netpoll.go:164 +0x4c
net.(*pollDesc).wait(0x114b3f7c, 0x72, 0xe71ef0, 0x6d1385)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:75 +0x2c
net.(*pollDesc).waitRead(0x114b3f7c, 0x1151c000, 0x8000)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:80 +0x2a
net.(*netFD).Read(0x114b3f40, 0x1151c000, 0x8000, 0x8000, 0x0, 0xe71ef0, 0xe6eedc)
/usr/lib/go-1.8/src/net/fd_unix.go:250 +0x15f
net.(*conn).Read(0x114f0390, 0x1151c000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/net/net.go:181 +0x57
crypto/tls.(*block).readFromUntil(0x114f8d20, 0xb63606d0, 0x114f0390, 0x5, 0x114f0390, 0xc)
/usr/lib/go-1.8/src/crypto/tls/conn.go:488 +0x7a
crypto/tls.(*Conn).readRecord(0x111af200, 0xc54517, 0x111af2a0, 0x58b430)
/usr/lib/go-1.8/src/crypto/tls/conn.go:590 +0xaa
crypto/tls.(*Conn).Read(0x111af200, 0x1151a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/crypto/tls/conn.go:1134 +0xf3
net/http.(*persistConn).Read(0x114ec5a0, 0x1151a000, 0x1000, 0x1000, 0x5, 0x5897f0, 0x11500840)
/usr/lib/go-1.8/src/net/http/transport.go:1316 +0x168
bufio.(*Reader).fill(0x11518180)
/usr/lib/go-1.8/src/bufio/bufio.go:97 +0xd6
bufio.(*Reader).Peek(0x11518180, 0x1, 0x11137dad, 0x1, 0x0, 0x11500780, 0x0)
/usr/lib/go-1.8/src/bufio/bufio.go:129 +0x52
net/http.(*persistConn).readLoop(0x114ec5a0)
/usr/lib/go-1.8/src/net/http/transport.go:1474 +0x1b7
created by net/http.(*Transport).dialConn
/usr/lib/go-1.8/src/net/http/transport.go:1117 +0x920
goroutine 20 [IO wait]:
net.runtime_pollWait(0xb63602b8, 0x72, 0x6d1325)
/usr/lib/go-1.8/src/runtime/netpoll.go:164 +0x4c
net.(*pollDesc).wait(0x112ea0bc, 0x72, 0xe71ef0, 0x6d1385)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:75 +0x2c
net.(*pollDesc).waitRead(0x112ea0bc, 0x11489000, 0x800)
/usr/lib/go-1.8/src/net/fd_poll_runtime.go:80 +0x2a
net.(*netFD).Read(0x112ea080, 0x11489000, 0x800, 0x800, 0x0, 0xe71ef0, 0xe6eedc)
/usr/lib/go-1.8/src/net/fd_unix.go:250 +0x15f
net.(*conn).Read(0x11274bf0, 0x11489000, 0x800, 0x800, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/net/net.go:181 +0x57
crypto/tls.(*block).readFromUntil(0x112de5e0, 0xb63606d0, 0x11274bf0, 0x5, 0x11274bf0, 0x0)
/usr/lib/go-1.8/src/crypto/tls/conn.go:488 +0x7a
crypto/tls.(*Conn).readRecord(0x111aea00, 0xc54517, 0x111aeaa0, 0x58b430)
/usr/lib/go-1.8/src/crypto/tls/conn.go:590 +0xaa
crypto/tls.(*Conn).Read(0x111aea00, 0x114cc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/go-1.8/src/crypto/tls/conn.go:1134 +0xf3
net/http.(*persistConn).Read(0x11111220, 0x114cc000, 0x1000, 0x1000, 0x5, 0x5897f0, 0x114b27c0)
/usr/lib/go-1.8/src/net/http/transport.go:1316 +0x168
bufio.(*Reader).fill(0x114a7c20)
/usr/lib/go-1.8/src/bufio/bufio.go:97 +0xd6
bufio.(*Reader).Peek(0x114a7c20, 0x1, 0x11135dad, 0x1, 0x0, 0x114b37c0, 0x0)
/usr/lib/go-1.8/src/bufio/bufio.go:129 +0x52
net/http.(*persistConn).readLoop(0x11111220)
/usr/lib/go-1.8/src/net/http/transport.go:1474 +0x1b7
created by net/http.(*Transport).dialConn
/usr/lib/go-1.8/src/net/http/transport.go:1117 +0x920
goroutine 21 [select]:
net/http.(*persistConn).writeLoop(0x11111220)
/usr/lib/go-1.8/src/net/http/transport.go:1704 +0x3b2
created by net/http.(*Transport).dialConn
/usr/lib/go-1.8/src/net/http/transport.go:1118 +0x946
goroutine 32 [select]:
net/http.(*persistConn).writeLoop(0x114ec5a0)
/usr/lib/go-1.8/src/net/http/transport.go:1704 +0x3b2
created by net/http.(*Transport).dialConn
/usr/lib/go-1.8/src/net/http/transport.go:1118 +0x946
egon@top:~/devel/go/src/github.com/snapcore/snapd$
Have you tested this with go 1.10 out of curiosity? I doubt it's been fixed but who knows... In any case I'm about to request the removal of 1.8 from the archive.