[Bug 1711052] [NEW] Snapd panics on i386 when build with -buildmode=pie in artful

Michael Vogt michael.vogt at canonical.com
Wed Aug 16 06:43:31 UTC 2017


Public bug reported:

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 at top:~/devel/go/src/github.com/snapcore/snapd$

** Affects: golang-1.8 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to golang-1.8 in Ubuntu.
https://bugs.launchpad.net/bugs/1711052

Title:
  Snapd panics on i386 when build with -buildmode=pie in artful

Status in golang-1.8 package in Ubuntu:
  New

Bug description:
  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 at top:~/devel/go/src/github.com/snapcore/snapd$

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/golang-1.8/+bug/1711052/+subscriptions



More information about the foundations-bugs mailing list