lxc / go-lxc

Go bindings for liblxc
https://linuxcontainers.org/lxc
Other
428 stars 77 forks source link

Fixes crash in cgroupItem() #143

Closed tomponline closed 3 years ago

tomponline commented 3 years ago

When container is shutting down and lxc ls is run, it can crash LXD with stack trace:

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x2380 pc=0x7fe173a817d2]

runtime stack:
runtime.throw(0x159c9bf, 0x2a)
    /usr/lib/go-1.13/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
    /usr/lib/go-1.13/src/runtime/signal_unix.go:378 +0x47c

goroutine 19614 [syscall]:
runtime.cgocall(0x1249fa9, 0xc0000234a8, 0xc0000234b8)
    /usr/lib/go-1.13/src/runtime/cgocall.go:128 +0x5b fp=0xc000023478 sp=0xc000023440 pc=0x41061b
gopkg.in/lxc/go-lxc%2ev2._Cfunc_go_lxc_get_cgroup_item(0x7fe11c005100, 0x7fe140003e30, 0x0)
    _cgo_gotypes.go:674 +0x4e fp=0xc0000234a8 sp=0xc000023478 pc=0x8bd43e
gopkg.in/lxc/go-lxc%2ev2.(*Container).cgroupItem.func2(0xc00032d950, 0x7fe140003e30, 0x7fe140003e30)
    /home/user/go/src/gopkg.in/lxc/go-lxc.v2/container.go:845 +0x69 fp=0xc0000234e8 sp=0xc0000234a8 pc=0x8d0fa9
gopkg.in/lxc/go-lxc%2ev2.(*Container).cgroupItem(0xc00032d950, 0x1578126, 0x19, 0x0, 0x0, 0x0)
    /home/user/go/src/gopkg.in/lxc/go-lxc.v2/container.go:845 +0xc9 fp=0xc0000235c0 sp=0xc0000234e8 pc=0x8c4c59
gopkg.in/lxc/go-lxc%2ev2.(*Container).CgroupItem(0xc00032d950, 0x1578126, 0x19, 0x0, 0x0, 0x0)
    /home/user/go/src/gopkg.in/lxc/go-lxc.v2/container.go:870 +0xa5 fp=0xc000023638 sp=0xc0000235c0 pc=0x8c4fd5
github.com/lxc/lxd/lxd/instance/drivers.(*lxcCgroupReadWriter).Get(0xc000708850, 0x1, 0x1549c59, 0x6, 0x1578126, 0x19, 0xc00019eb08, 0x9, 0x1, 0x1)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:7061 +0x1d8 fp=0xc000023690 sp=0xc000023638 pc=0xfa0178
github.com/lxc/lxd/lxd/cgroup.(*CGroup).GetMemoryMaxUsage(0xc0004fa4a0, 0x9, 0xc0004fa4a0, 0x1, 0x3bdf000)
    /home/user/go/src/github.com/lxc/lxd/lxd/cgroup/abstraction.go:155 +0x10e fp=0xc0000236f0 sp=0xc000023690 pc=0xc4b98e
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).memoryState(0xc000034dc0, 0x5dcffb4e, 0x7, 0xc0004783c8, 0x1486080)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:5839 +0x2db fp=0xc000023760 sp=0xc0000236f0 pc=0xf975eb
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).RenderState(0xc000034dc0, 0xc000514140, 0x0, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:3230 +0x891 fp=0xc000023838 sp=0xc000023760 pc=0xf7d151
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).RenderFull(0xc000034dc0, 0xc0007247b0, 0xc0004c6e30, 0x2, 0xc00019ee18, 0xc0009650e0)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:3172 +0x167 fp=0xc000023c20 sp=0xc000023838 pc=0xf7c137
main.doContainersGet.func5(0xc00032a9c0, 0xc0005704c0, 0xc0007247b0, 0xc00069c200, 0xc00069c220, 0xc000670b10)
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:268 +0x228 fp=0xc000023fb0 sp=0xc000023c20 pc=0x121e198
runtime.goexit()
    /usr/lib/go-1.13/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc000023fb8 sp=0xc000023fb0 pc=0x46d091
created by main.doContainersGet
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:250 +0xc47

goroutine 1 [select, 36 minutes]:
main.(*cmdDaemon).Run(0xc0003900c0, 0xc0001982c0, 0xc0001a1a40, 0x0, 0x4, 0x0, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/main_daemon.go:93 +0x734
github.com/spf13/cobra.(*Command).execute(0xc0001982c0, 0xc000032060, 0x4, 0x4, 0xc0001982c0, 0xc000032060)
    /home/user/go/src/github.com/spf13/cobra/command.go:850 +0x460
github.com/spf13/cobra.(*Command).ExecuteC(0xc0001982c0, 0xc00037bf30, 0x1, 0x1)
    /home/user/go/src/github.com/spf13/cobra/command.go:958 +0x349
github.com/spf13/cobra.(*Command).Execute(...)
    /home/user/go/src/github.com/spf13/cobra/command.go:895
main.main()
    /home/user/go/src/github.com/lxc/lxd/lxd/main.go:213 +0xf3b

goroutine 76 [select, 36 minutes]:
database/sql.(*DB).connectionResetter(0xc00025a300, 0x180b9a0, 0xc000083640)
    /usr/lib/go-1.13/src/database/sql/sql.go:1065 +0xfb
created by database/sql.OpenDB
    /usr/lib/go-1.13/src/database/sql/sql.go:723 +0x193

goroutine 23 [syscall, 36 minutes]:
os/signal.signal_recv(0x0)
    /usr/lib/go-1.13/src/runtime/sigqueue.go:147 +0x9c
os/signal.loop()
    /usr/lib/go-1.13/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
    /usr/lib/go-1.13/src/os/signal/signal_unix.go:29 +0x41

goroutine 19612 [runnable]:
syscall.Syscall(0x0, 0x10, 0xc000570060, 0x8, 0x8, 0x8, 0x0)
    /usr/lib/go-1.13/src/syscall/asm_linux_amd64.s:18 +0x5
syscall.read(0x10, 0xc000570060, 0x8, 0x8, 0x0, 0x17e2c40, 0x2147fb8)
    /usr/lib/go-1.13/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
syscall.Read(...)
    /usr/lib/go-1.13/src/syscall/syscall_unix.go:183
internal/poll.(*FD).Read(0xc0000f9180, 0xc000570060, 0x8, 0x8, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/internal/poll/fd_unix.go:165 +0x164
net.(*netFD).Read(0xc0000f9180, 0xc000570060, 0x8, 0x8, 0xc0008387b8, 0x5bcd8f, 0xc0000f9180)
    /usr/lib/go-1.13/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000184258, 0xc000570060, 0x8, 0x8, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/net/net.go:184 +0x68
github.com/canonical/go-dqlite/internal/protocol.(*Protocol).recvFill(0xc000083700, 0xc000570060, 0x8, 0x8, 0x64, 0xc000838860, 0xc000838868)
    /home/user/go/src/github.com/canonical/go-dqlite/internal/protocol/protocol.go:226 +0x74
github.com/canonical/go-dqlite/internal/protocol.(*Protocol).recvPeek(0xc000083700, 0xc000570060, 0x8, 0x8, 0x0, 0xb0)
    /home/user/go/src/github.com/canonical/go-dqlite/internal/protocol/protocol.go:210 +0x9c
github.com/canonical/go-dqlite/internal/protocol.(*Protocol).recvHeader(0xc000083700, 0xc0000c4aa0, 0x0, 0x0)
    /home/user/go/src/github.com/canonical/go-dqlite/internal/protocol/protocol.go:177 +0x4f
github.com/canonical/go-dqlite/internal/protocol.(*Protocol).recv(0xc000083700, 0xc0000c4aa0, 0x0, 0x0)
    /home/user/go/src/github.com/canonical/go-dqlite/internal/protocol/protocol.go:165 +0x47
github.com/canonical/go-dqlite/internal/protocol.(*Protocol).Call(0xc000083700, 0x180b9e0, 0xc00003a0f0, 0xc0000c4a60, 0xc0000c4aa0, 0x0, 0x0)
    /home/user/go/src/github.com/canonical/go-dqlite/internal/protocol/protocol.go:70 +0x1d3
github.com/canonical/go-dqlite/driver.(*Conn).QueryContext(0xc0000c4a50, 0x180b9e0, 0xc00003a0f0, 0x15c1da6, 0x93, 0xc000724ea0, 0x1, 0x1, 0xc0005b0000, 0x10, ...)
    /home/user/go/src/github.com/canonical/go-dqlite/driver/driver.go:398 +0xdc
database/sql.ctxDriverQuery(0x180b9e0, 0xc00003a0f0, 0x7fe170059028, 0xc0000c4a50, 0x0, 0x0, 0x15c1da6, 0x93, 0xc000724ea0, 0x1, ...)
    /usr/lib/go-1.13/src/database/sql/ctxutil.go:48 +0x227
database/sql.(*DB).queryDC.func1()
    /usr/lib/go-1.13/src/database/sql/sql.go:1592 +0x1db
database/sql.withLock(0x17f4460, 0xc0000f8080, 0xc000838df0)
    /usr/lib/go-1.13/src/database/sql/sql.go:3184 +0x6d
database/sql.(*DB).queryDC(0xc00025a300, 0x180b9e0, 0xc00003a0f0, 0x180b9a0, 0xc000935180, 0xc0000f8080, 0xc0005a7c70, 0x15c1da6, 0x93, 0xc0008390c0, ...)
    /usr/lib/go-1.13/src/database/sql/sql.go:1587 +0x5dd
database/sql.(*Tx).QueryContext(0xc000193880, 0x180b9e0, 0xc00003a0f0, 0x15c1da6, 0x93, 0xc0008390c0, 0x1, 0x1, 0x0, 0x13e0c40, ...)
    /usr/lib/go-1.13/src/database/sql/sql.go:2291 +0x116
database/sql.(*Tx).Query(...)
    /usr/lib/go-1.13/src/database/sql/sql.go:2296
github.com/lxc/lxd/lxd/db/query.scanSingleColumn(0xc000193880, 0x15c1da6, 0x93, 0xc0008390c0, 0x1, 0x1, 0x1545458, 0x4, 0xc000839018, 0x0, ...)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/query/slices.go:127 +0xa5
github.com/lxc/lxd/lxd/db/query.SelectStrings(0xc000193880, 0x15c1da6, 0x93, 0xc0008390c0, 0x1, 0x1, 0xc0000f8080, 0xc0008390f8, 0x8419d9, 0xc00025a300, ...)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/query/slices.go:70 +0xcf
github.com/lxc/lxd/lxd/db.(*Cluster).storagePoolNodes.func1(0xc0003c9620, 0xc000193880, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/storage_pools.go:701 +0xb9
github.com/lxc/lxd/lxd/db.(*Cluster).transaction.func1.1(0xc000193880, 0x180b9e0, 0xc00003a0f0)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/db.go:391 +0x41
github.com/lxc/lxd/lxd/db/query.Transaction(0xc00025a300, 0xc0008391b0, 0xc0003c9620, 0x20)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/query/transaction.go:23 +0x170
github.com/lxc/lxd/lxd/db.(*Cluster).transaction.func1(0x18, 0xc0003c9620)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/db.go:389 +0x66
github.com/lxc/lxd/lxd/db/query.Retry(0xc000839290, 0x20, 0x14346e0)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/query/retry.go:26 +0xe0
github.com/lxc/lxd/lxd/db.(*Cluster).retry(0xc00018a200, 0xc000839290, 0x203000, 0x203000)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/db.go:404 +0x92
github.com/lxc/lxd/lxd/db.(*Cluster).transaction(0xc00018a200, 0xc000839360, 0x80, 0x78)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/db.go:388 +0x94
github.com/lxc/lxd/lxd/db.(*Cluster).Transaction(0xc00018a200, 0xc000839360, 0x0, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/db.go:351 +0x85
github.com/lxc/lxd/lxd/db.(*Cluster).storagePoolNodes(0xc00018a200, 0x1, 0xc000724e70, 0x0, 0x0, 0x2, 0xc000839460)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/storage_pools.go:699 +0x92
github.com/lxc/lxd/lxd/db.(*Cluster).getStoragePool(0xc00018a200, 0xc000570945, 0x7, 0x1, 0x8, 0xc0008394b0, 0x944019, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/storage_pools.go:682 +0x42c
github.com/lxc/lxd/lxd/db.(*Cluster).GetStoragePool(...)
    /home/user/go/src/github.com/lxc/lxd/lxd/db/storage_pools.go:626
github.com/lxc/lxd/lxd/storage.GetPoolByName(0xc000183920, 0xc000570945, 0x7, 0xc0005705f0, 0x5, 0xc000570945, 0x7)
    /home/user/go/src/github.com/lxc/lxd/lxd/storage/load.go:143 +0x33f
github.com/lxc/lxd/lxd/storage.GetPoolByInstance(0xc000183920, 0x184bd20, 0xc000034f00, 0x4, 0xc00019e408, 0xc000254cb0, 0xc000839678)
    /home/user/go/src/github.com/lxc/lxd/lxd/storage/load.go:182 +0xf8
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).diskState(0xc000034f00, 0x154b55a)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:5782 +0x1a1
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).RenderState(0xc000034f00, 0xc0005e0140, 0x0, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:3235 +0x7fc
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).RenderFull(0xc000034f00, 0xc0007247b0, 0xc0004c6dc0, 0x5, 0xc00019ee28, 0x180ba60)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:3172 +0x167
main.doContainersGet.func5(0xc00032a9c0, 0xc0005704c0, 0xc0007247b0, 0xc00069c200, 0xc00069c220, 0xc000670b10)
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:268 +0x228
created by main.doContainersGet
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:250 +0xc47

goroutine 25 [select, 36 minutes]:
database/sql.(*DB).connectionResetter(0xc00035c6c0, 0x180b9a0, 0xc0003b0c40)
    /usr/lib/go-1.13/src/database/sql/sql.go:1065 +0xfb
created by database/sql.OpenDB
    /usr/lib/go-1.13/src/database/sql/sql.go:723 +0x193

goroutine 24 [select, 36 minutes]:
database/sql.(*DB).connectionOpener(0xc00035c6c0, 0x180b9a0, 0xc0003b0c40)
    /usr/lib/go-1.13/src/database/sql/sql.go:1052 +0xe8
created by database/sql.OpenDB
    /usr/lib/go-1.13/src/database/sql/sql.go:722 +0x15d

goroutine 19605 [IO wait]:
internal/poll.runtime_pollWait(0x7fe1701dfa28, 0x72, 0xffffffffffffffff)
    /usr/lib/go-1.13/src/runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc0000f8118, 0x72, 0x0, 0x1, 0xffffffffffffffff)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000f8100, 0xc000327d51, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/internal/poll/fd_unix.go:169 +0x1cf
net.(*netFD).Read(0xc0000f8100, 0xc000327d51, 0x1, 0x1, 0xc0001a8f88, 0xc0013461d8, 0xc0001a9038)
    /usr/lib/go-1.13/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0001ca118, 0xc000327d51, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/net/net.go:184 +0x68
net/http.(*connReader).backgroundRead(0xc000327d40)
    /usr/lib/go-1.13/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
    /usr/lib/go-1.13/src/net/http/server.go:673 +0xd4

goroutine 75 [select, 36 minutes]:
database/sql.(*DB).connectionOpener(0xc00025a300, 0x180b9a0, 0xc000083640)
    /usr/lib/go-1.13/src/database/sql/sql.go:1052 +0xe8
created by database/sql.OpenDB
    /usr/lib/go-1.13/src/database/sql/sql.go:722 +0x15d

goroutine 72 [IO wait]:
internal/poll.runtime_pollWait(0x7fe1701dff08, 0x72, 0x0)
    /usr/lib/go-1.13/src/runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc0000f8698, 0x72, 0x0, 0x0, 0x154b7bb)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc0000f8680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/internal/poll/fd_unix.go:384 +0x1f8
net.(*netFD).accept(0xc0000f8680, 0x7039a4, 0xc0003040a0, 0xc000acb8c0)
    /usr/lib/go-1.13/src/net/fd_unix.go:238 +0x42
net.(*UnixListener).accept(0xc000530b70, 0x5f803b50, 0xc000069d70, 0x4e0bb6)
    /usr/lib/go-1.13/src/net/unixsock_posix.go:162 +0x32
net.(*UnixListener).Accept(0xc000530b70, 0xc000069dc0, 0x18, 0xc0001a9380, 0x702ed4)
    /usr/lib/go-1.13/src/net/unixsock.go:260 +0x47
net/http.(*Server).Serve(0xc000304000, 0x18042e0, 0xc000530b70, 0x0, 0x0)
    /usr/lib/go-1.13/src/net/http/server.go:2896 +0x280
github.com/lxc/lxd/lxd/endpoints.(*Endpoints).serveHTTP.func1(0x0, 0x1)
    /home/user/go/src/github.com/lxc/lxd/lxd/endpoints/endpoints.go:342 +0x3c
gopkg.in/tomb%2ev2.(*Tomb).run(0xc000032be0, 0xc0005383e0)
    /home/user/go/src/gopkg.in/tomb.v2/tomb.go:163 +0x2b
created by gopkg.in/tomb%2ev2.(*Tomb).Go
    /home/user/go/src/gopkg.in/tomb.v2/tomb.go:159 +0xc7

goroutine 71 [IO wait, 36 minutes]:
internal/poll.runtime_pollWait(0x7fe1701dfe38, 0x72, 0x0)
    /usr/lib/go-1.13/src/runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc0000f8818, 0x72, 0x0, 0x0, 0x154b7bb)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc0000f8800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/internal/poll/fd_unix.go:384 +0x1f8
net.(*netFD).accept(0xc0000f8800, 0xc0001b6a80, 0x7fe173455460, 0xc0001a9500)
    /usr/lib/go-1.13/src/net/fd_unix.go:238 +0x42
net.(*UnixListener).accept(0xc000530bd0, 0xc00006bd70, 0x41a458, 0x30)
    /usr/lib/go-1.13/src/net/unixsock_posix.go:162 +0x32
net.(*UnixListener).Accept(0xc000530bd0, 0x1489f60, 0xc0005461b0, 0x138e3c0, 0x21254d0)
    /usr/lib/go-1.13/src/net/unixsock.go:260 +0x47
net/http.(*Server).Serve(0xc0003040e0, 0x18042e0, 0xc000530bd0, 0x0, 0x0)
    /usr/lib/go-1.13/src/net/http/server.go:2896 +0x280
github.com/lxc/lxd/lxd/endpoints.(*Endpoints).serveHTTP.func1(0x0, 0xc0001ebf98)
    /home/user/go/src/github.com/lxc/lxd/lxd/endpoints/endpoints.go:342 +0x3c
gopkg.in/tomb%2ev2.(*Tomb).run(0xc000032be0, 0xc000538320)
    /home/user/go/src/gopkg.in/tomb.v2/tomb.go:163 +0x2b
created by gopkg.in/tomb%2ev2.(*Tomb).Go
    /home/user/go/src/gopkg.in/tomb.v2/tomb.go:159 +0xc7

goroutine 310 [syscall, 36 minutes]:
syscall.Syscall(0x0, 0x16, 0xc000604000, 0x64640, 0x45389c, 0x66000, 0x1331be0)
    /usr/lib/go-1.13/src/syscall/asm_linux_amd64.s:18 +0x5
golang.org/x/sys/unix.read(0x16, 0xc000604000, 0x64640, 0x64640, 0xc0003edfb0, 0x1, 0x78b0f9)
    /home/user/go/src/golang.org/x/sys/unix/zsyscall_linux.go:1231 +0x5a
golang.org/x/sys/unix.Read(...)
    /home/user/go/src/golang.org/x/sys/unix/syscall_unix.go:156
github.com/lxc/lxd/lxd/device.inotifyWatcher.func1(0xc000566a20, 0xc0001d8180)
    /home/user/go/src/github.com/lxc/lxd/lxd/device/device_utils_inotify.go:170 +0x7d
created by github.com/lxc/lxd/lxd/device.inotifyWatcher
    /home/user/go/src/github.com/lxc/lxd/lxd/device/device_utils_inotify.go:167 +0x67

goroutine 19642 [chan receive]:
database/sql.(*Tx).awaitDone(0xc000193880)
    /usr/lib/go-1.13/src/database/sql/sql.go:2002 +0x4b
created by database/sql.(*DB).beginDC
    /usr/lib/go-1.13/src/database/sql/sql.go:1723 +0x1b4

goroutine 301 [syscall]:
syscall.Syscall(0x0, 0x17, 0xc00039d000, 0x1000, 0x1, 0xc00056eea8, 0x133c880)
    /usr/lib/go-1.13/src/syscall/asm_linux_amd64.s:18 +0x5
golang.org/x/sys/unix.read(0x17, 0xc00039d000, 0x1000, 0x1000, 0x26e0500, 0x0, 0x5)
    /home/user/go/src/golang.org/x/sys/unix/zsyscall_linux.go:1231 +0x5a
golang.org/x/sys/unix.Read(...)
    /home/user/go/src/golang.org/x/sys/unix/syscall_unix.go:156
main.deviceNetlinkListener.func1(0x800, 0x17, 0xc000295f80, 0xc0001a4180, 0xc0001a41e0, 0xc0001a4240)
    /home/user/go/src/github.com/lxc/lxd/lxd/devices.go:102 +0x9f
created by main.deviceNetlinkListener
    /home/user/go/src/github.com/lxc/lxd/lxd/devices.go:99 +0x210

goroutine 19613 [runnable]:
gopkg.in/lxc/go-lxc%2ev2._Cfunc_free(0x7fe14c006430)
    _cgo_gotypes.go:272 +0x41
gopkg.in/lxc/go-lxc%2ev2.(*Container).cgroupItem.func3.1()
    /home/user/go/src/gopkg.in/lxc/go-lxc.v2/container.go:846 +0x5a
gopkg.in/lxc/go-lxc%2ev2.(*Container).cgroupItem(0xc000965170, 0x1578126, 0x19, 0xc0006f9b80, 0x1, 0x1)
    /home/user/go/src/gopkg.in/lxc/go-lxc.v2/container.go:849 +0x198
gopkg.in/lxc/go-lxc%2ev2.(*Container).CgroupItem(0xc000965170, 0x1578126, 0x19, 0x0, 0x0, 0x0)
    /home/user/go/src/gopkg.in/lxc/go-lxc.v2/container.go:870 +0xa5
github.com/lxc/lxd/lxd/instance/drivers.(*lxcCgroupReadWriter).Get(0xc0006f9b00, 0x1, 0x1549c59, 0x6, 0x1578126, 0x19, 0xc00019eb08, 0x9, 0x1, 0x1)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:7061 +0x1d8
github.com/lxc/lxd/lxd/cgroup.(*CGroup).GetMemoryMaxUsage(0xc00069c700, 0x9, 0xc00069c700, 0x1, 0x362c000)
    /home/user/go/src/github.com/lxc/lxd/lxd/cgroup/abstraction.go:155 +0x10e
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).memoryState(0xc000034b40, 0x4ebe5964, 0x7, 0xc0001daba8, 0x1486080)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:5839 +0x2db
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).RenderState(0xc000034b40, 0xc0004f08c0, 0x0, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:3230 +0x891
github.com/lxc/lxd/lxd/instance/drivers.(*lxc).RenderFull(0xc000034b40, 0xc0007247b0, 0xc0004c6e10, 0x2, 0xc00019ee08, 0x41ba2d)
    /home/user/go/src/github.com/lxc/lxd/lxd/instance/drivers/driver_lxc.go:3172 +0x167
main.doContainersGet.func5(0xc00032a9c0, 0xc0005704c0, 0xc0007247b0, 0xc00069c200, 0xc00069c220, 0xc000670b10)
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:268 +0x228
created by main.doContainersGet
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:250 +0xc47

goroutine 391 [select, 36 minutes]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390b60, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390b60, 0xc000544ac0, 0xc0001a87e8, 0x0)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 392 [select, 36 minutes]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390b80, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390b80, 0xc000544ac0, 0xc0001a87e8, 0x1)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 341 [chan receive, 36 minutes]:
github.com/lxc/lxd/lxd/device.InotifyHandler(0xc000566a20)
    /home/user/go/src/github.com/lxc/lxd/lxd/device/device_utils_inotify.go:52 +0x56
created by main.(*Daemon).init
    /home/user/go/src/github.com/lxc/lxd/lxd/daemon.go:1056 +0x2096

goroutine 317 [IO wait, 36 minutes]:
internal/poll.runtime_pollWait(0x7fe1701dfaf8, 0x72, 0x0)
    /usr/lib/go-1.13/src/runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc000192a98, 0x72, 0x0, 0x0, 0x154b7bb)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
    /usr/lib/go-1.13/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc000192a80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go-1.13/src/internal/poll/fd_unix.go:384 +0x1f8
net.(*netFD).accept(0xc000192a80, 0x3, 0x0, 0x1608bb0)
    /usr/lib/go-1.13/src/net/fd_unix.go:238 +0x42
net.(*UnixListener).accept(0xc0004e5560, 0xc000080138, 0x466dc0, 0xc0000800e0)
    /usr/lib/go-1.13/src/net/unixsock_posix.go:162 +0x32
net.(*UnixListener).Accept(0xc0004e5560, 0xfcff6d, 0x445116, 0x1608900, 0xfcff6d)
    /usr/lib/go-1.13/src/net/unixsock.go:260 +0x47
github.com/lxc/lxd/lxd/seccomp.NewSeccompServer.func1(0x18042e0, 0xc0004e5560, 0xc0004e5590, 0x16078a8)
    /home/user/go/src/github.com/lxc/lxd/lxd/seccomp/seccomp.go:989 +0x69
created by github.com/lxc/lxd/lxd/seccomp.NewSeccompServer
    /home/user/go/src/github.com/lxc/lxd/lxd/seccomp/seccomp.go:987 +0x1cb

goroutine 340 [select]:
main.deviceEventListener(0xc000566960)
    /home/user/go/src/github.com/lxc/lxd/lxd/devices.go:526 +0x226
created by main.(*Daemon).init
    /home/user/go/src/github.com/lxc/lxd/lxd/daemon.go:1048 +0x1f30

goroutine 393 [select, 36 minutes]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390ba0, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390ba0, 0xc000544ac0, 0xc0001a87e8, 0x2)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 394 [select, 36 minutes]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390bc0, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390bc0, 0xc000544ac0, 0xc0001a87e8, 0x3)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 395 [select, 36 minutes]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390be0, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390be0, 0xc000544ac0, 0xc0001a87e8, 0x4)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 396 [select]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390c00, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390c00, 0xc000544ac0, 0xc0001a87e8, 0x5)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 397 [select]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390c20, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390c20, 0xc000544ac0, 0xc0001a87e8, 0x6)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 398 [select]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390c40, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390c40, 0xc000544ac0, 0xc0001a87e8, 0x7)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 399 [select]:
github.com/lxc/lxd/lxd/task.(*Task).loop(0xc000390c60, 0x180b9a0, 0xc0005fa200)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/task.go:66 +0x153
github.com/lxc/lxd/lxd/task.(*Group).Start.func1(0xc000390c60, 0xc000544ac0, 0xc0001a87e8, 0x8)
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:61 +0x45
created by github.com/lxc/lxd/lxd/task.(*Group).Start
    /home/user/go/src/github.com/lxc/lxd/lxd/task/group.go:60 +0x259

goroutine 9660 [syscall, 16 minutes]:
syscall.Syscall6(0xf7, 0x1, 0x13b85, 0xc000473e70, 0x1000004, 0x0, 0x0, 0xc000473e98, 0x41a458, 0x10)
    /usr/lib/go-1.13/src/syscall/asm_linux_amd64.s:44 +0x5
os.(*Process).blockUntilWaitable(0xc000338ea0, 0x846a51, 0xc001031100, 0x17dfe60)
    /usr/lib/go-1.13/src/os/wait_waitid.go:31 +0x98
os.(*Process).wait(0xc000338ea0, 0x1, 0x0, 0x0)
    /usr/lib/go-1.13/src/os/exec_unix.go:22 +0x39
os.(*Process).Wait(...)
    /usr/lib/go-1.13/src/os/exec.go:125
github.com/lxc/lxd/shared/subprocess.(*Process).start.func1(0xc0002426e0, 0xc0005db220)
    /home/user/go/src/github.com/lxc/lxd/shared/subprocess/proc.go:170 +0x36
created by github.com/lxc/lxd/shared/subprocess.(*Process).start
    /home/user/go/src/github.com/lxc/lxd/shared/subprocess/proc.go:169 +0x380

goroutine 19604 [semacquire]:
sync.runtime_Semacquire(0xc000670b18)
    /usr/lib/go-1.13/src/runtime/sema.go:56 +0x42
sync.(*WaitGroup).Wait(0xc000670b10)
    /usr/lib/go-1.13/src/sync/waitgroup.go:130 +0x64
main.doContainersGet(0xc0001a8780, 0xc0001acb00, 0x18, 0x1400fe0, 0x8, 0xc000027828)
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:287 +0xf17
main.containersGet(0xc0001a8780, 0xc0001acb00, 0x17f4ee0, 0x2130220)
    /home/user/go/src/github.com/lxc/lxd/lxd/instances_get.go:49 +0x75
main.(*Daemon).createCmd.func1.2(0x1607ba8, 0xc000179be0, 0x1544700, 0x3, 0xffffffffffffffff)
    /home/user/go/src/github.com/lxc/lxd/lxd/daemon.go:505 +0x66
main.(*Daemon).createCmd.func1(0x1804560, 0xc0000fc000, 0xc0001aca00)
    /home/user/go/src/github.com/lxc/lxd/lxd/daemon.go:510 +0xd18
net/http.HandlerFunc.ServeHTTP(0xc0003ce870, 0x1804560, 0xc0000fc000, 0xc0001aca00)
    /usr/lib/go-1.13/src/net/http/server.go:2007 +0x44
github.com/gorilla/mux.(*Router).ServeHTTP(0xc00035c000, 0x1804560, 0xc0000fc000, 0xc0000fa000)
    /home/user/go/src/github.com/gorilla/mux/mux.go:210 +0xe2
main.(*lxdHttpServer).ServeHTTP(0xc00032e860, 0x1804560, 0xc0000fc000, 0xc0000fa000)
    /home/user/go/src/github.com/lxc/lxd/lxd/api.go:91 +0x89
net/http.serverHandler.ServeHTTP(0xc000304000, 0x1804560, 0xc0000fc000, 0xc0000fa000)
    /usr/lib/go-1.13/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc00053e140, 0x180b9a0, 0xc000082080)
    /usr/lib/go-1.13/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
    /usr/lib/go-1.13/src/net/http/server.go:2928 +0x384
brauner commented 3 years ago

Thanks!