go-qemu icon indicating copy to clipboard operation
go-qemu copied to clipboard

Marshaling any discriminated union (flat union) into JSON overflows the stack

Open connorkuehl opened this issue 2 years ago • 0 comments

To reproduce:

package main

import (
	"encoding/json"
	"os"

	"github.com/digitalocean/go-qemu/qmp/raw"
)

func main() {
	s := "libvirt-1-format"
	opts := raw.BlockdevOptionsNBD{NodeName: &s}
	_ = json.NewEncoder(os.Stdout).Encode(opts)
}
output
runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc0201603f8 stack=[0xc020160000, 0xc040160000]
fatal error: stack overflow

runtime stack: runtime.throw({0x4c3873?, 0x55c7c0?}) /usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7fd3eb696cb8 sp=0x7fd3eb696c88 pc=0x4339bd runtime.newstack() /usr/local/go/src/runtime/stack.go:1103 +0x5cc fp=0x7fd3eb696e70 sp=0x7fd3eb696cb8 pc=0x44b08c runtime.morestack() /usr/local/go/src/runtime/asm_amd64.s:570 +0x8b fp=0x7fd3eb696e78 sp=0x7fd3eb696e70 pc=0x45da2b

goroutine 1 [running]: go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0xc00a374ae0?) :1 +0x110 fp=0xc020160408 sp=0xc020160400 pc=0x4a3350 encoding/json.marshalerEncoder(0xc00a376080, {0x4ba520?, 0xc00a374ae0?, 0x4ba520?}, {0xe0?, 0x2a?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020160490 sp=0xc020160408 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020160500?, {0x4ba520?, 0xc00a374ae0?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc0201604c8 sp=0xc020160490 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374ae0?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020160510 sp=0xc0201604c8 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374ae0?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020160570 sp=0xc020160510 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374ae0?, {0x4ba520?, 0xc00a374ae0?}, {0x38?, 0x6?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc0201605e8 sp=0xc020160570 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374ae0}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020160648 sp=0xc0201605e8 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020160768 sp=0xc020160648 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a376000, {0x4ba520?, 0xc00a374a80?, 0x4ba520?}, {0x50?, 0x8?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc0201607f0 sp=0xc020160768 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020160860?, {0x4ba520?, 0xc00a374a80?, 0x4ba520?}, {0x86?, 0x87?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020160828 sp=0xc0201607f0 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374a80?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020160870 sp=0xc020160828 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374a80?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc0201608d0 sp=0xc020160870 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374a80?, {0x4ba520?, 0xc00a374a80?}, {0x98?, 0x9?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020160948 sp=0xc0201608d0 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374a80}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc0201609a8 sp=0xc020160948 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020160ac8 sp=0xc0201609a8 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371f80, {0x4ba520?, 0xc00a374a20?, 0x4ba520?}, {0x80?, 0x2a?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020160b50 sp=0xc020160ac8 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020160bc0?, {0x4ba520?, 0xc00a374a20?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020160b88 sp=0xc020160b50 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374a20?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020160bd0 sp=0xc020160b88 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374a20?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020160c30 sp=0xc020160bd0 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374a20?, {0x4ba520?, 0xc00a374a20?}, {0xf8?, 0xc?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020160ca8 sp=0xc020160c30 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374a20}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020160d08 sp=0xc020160ca8 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020160e28 sp=0xc020160d08 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371f00, {0x4ba520?, 0xc00a3749c0?, 0x4ba520?}, {0x50?, 0x2a?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020160eb0 sp=0xc020160e28 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020160f20?, {0x4ba520?, 0xc00a3749c0?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020160ee8 sp=0xc020160eb0 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a3749c0?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020160f30 sp=0xc020160ee8 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a3749c0?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020160f90 sp=0xc020160f30 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a3749c0?, {0x4ba520?, 0xc00a3749c0?}, {0x58?, 0x10?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020161008 sp=0xc020160f90 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a3749c0}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020161068 sp=0xc020161008 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020161188 sp=0xc020161068 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371e80, {0x4ba520?, 0xc00a374960?, 0x4ba520?}, {0x20?, 0x2a?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020161210 sp=0xc020161188 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020161280?, {0x4ba520?, 0xc00a374960?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020161248 sp=0xc020161210 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374960?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020161290 sp=0xc020161248 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374960?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc0201612f0 sp=0xc020161290 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374960?, {0x4ba520?, 0xc00a374960?}, {0xb8?, 0x13?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020161368 sp=0xc0201612f0 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374960}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc0201613c8 sp=0xc020161368 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc0201614e8 sp=0xc0201613c8 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371e00, {0x4ba520?, 0xc00a374900?, 0x4ba520?}, {0xf0?, 0x29?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020161570 sp=0xc0201614e8 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc0201615e0?, {0x4ba520?, 0xc00a374900?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc0201615a8 sp=0xc020161570 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374900?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc0201615f0 sp=0xc0201615a8 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374900?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020161650 sp=0xc0201615f0 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374900?, {0x4ba520?, 0xc00a374900?}, {0x18?, 0x17?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc0201616c8 sp=0xc020161650 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374900}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020161728 sp=0xc0201616c8 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020161848 sp=0xc020161728 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371d80, {0x4ba520?, 0xc00a3748a0?, 0x4ba520?}, {0xc0?, 0x29?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc0201618d0 sp=0xc020161848 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020161940?, {0x4ba520?, 0xc00a3748a0?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020161908 sp=0xc0201618d0 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a3748a0?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020161950 sp=0xc020161908 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a3748a0?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc0201619b0 sp=0xc020161950 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a3748a0?, {0x4ba520?, 0xc00a3748a0?}, {0x78?, 0x1a?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020161a28 sp=0xc0201619b0 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a3748a0}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020161a88 sp=0xc020161a28 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020161ba8 sp=0xc020161a88 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371d00, {0x4ba520?, 0xc00a374840?, 0x4ba520?}, {0x90?, 0x29?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020161c30 sp=0xc020161ba8 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020161ca0?, {0x4ba520?, 0xc00a374840?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020161c68 sp=0xc020161c30 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374840?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020161cb0 sp=0xc020161c68 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374840?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020161d10 sp=0xc020161cb0 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374840?, {0x4ba520?, 0xc00a374840?}, {0xd8?, 0x1d?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020161d88 sp=0xc020161d10 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374840}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020161de8 sp=0xc020161d88 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020161f08 sp=0xc020161de8 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371c80, {0x4ba520?, 0xc00a3747e0?, 0x4ba520?}, {0x60?, 0x29?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020161f90 sp=0xc020161f08 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020162000?, {0x4ba520?, 0xc00a3747e0?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020161fc8 sp=0xc020161f90 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a3747e0?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020162010 sp=0xc020161fc8 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a3747e0?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020162070 sp=0xc020162010 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a3747e0?, {0x4ba520?, 0xc00a3747e0?}, {0x38?, 0x21?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc0201620e8 sp=0xc020162070 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a3747e0}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020162148 sp=0xc0201620e8 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020162268 sp=0xc020162148 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371c00, {0x4ba520?, 0xc00a374780?, 0x4ba520?}, {0x30?, 0x29?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc0201622f0 sp=0xc020162268 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020162360?, {0x4ba520?, 0xc00a374780?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020162328 sp=0xc0201622f0 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374780?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020162370 sp=0xc020162328 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374780?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc0201623d0 sp=0xc020162370 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374780?, {0x4ba520?, 0xc00a374780?}, {0x98?, 0x24?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020162448 sp=0xc0201623d0 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374780}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc0201624a8 sp=0xc020162448 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc0201625c8 sp=0xc0201624a8 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371b80, {0x4ba520?, 0xc00a374720?, 0x4ba520?}, {0x0?, 0x29?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020162650 sp=0xc0201625c8 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc0201626c0?, {0x4ba520?, 0xc00a374720?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020162688 sp=0xc020162650 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374720?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc0201626d0 sp=0xc020162688 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374720?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020162730 sp=0xc0201626d0 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374720?, {0x4ba520?, 0xc00a374720?}, {0xf8?, 0x27?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc0201627a8 sp=0xc020162730 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374720}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020162808 sp=0xc0201627a8 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020162928 sp=0xc020162808 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371b00, {0x4ba520?, 0xc00a3746c0?, 0x4ba520?}, {0xd0?, 0x28?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc0201629b0 sp=0xc020162928 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020162a20?, {0x4ba520?, 0xc00a3746c0?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc0201629e8 sp=0xc0201629b0 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a3746c0?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020162a30 sp=0xc0201629e8 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a3746c0?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020162a90 sp=0xc020162a30 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a3746c0?, {0x4ba520?, 0xc00a3746c0?}, {0x58?, 0x2b?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020162b08 sp=0xc020162a90 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a3746c0}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020162b68 sp=0xc020162b08 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020162c88 sp=0xc020162b68 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371a80, {0x4ba520?, 0xc00a374660?, 0x4ba520?}, {0xa0?, 0x28?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020162d10 sp=0xc020162c88 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc020162d80?, {0x4ba520?, 0xc00a374660?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc020162d48 sp=0xc020162d10 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374660?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc020162d90 sp=0xc020162d48 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374660?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020162df0 sp=0xc020162d90 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374660?, {0x4ba520?, 0xc00a374660?}, {0xb8?, 0x2e?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc020162e68 sp=0xc020162df0 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374660}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020162ec8 sp=0xc020162e68 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020162fe8 sp=0xc020162ec8 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371a00, {0x4ba520?, 0xc00a374600?, 0x4ba520?}, {0x70?, 0x28?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc020163070 sp=0xc020162fe8 pc=0x49079e encoding/json.condAddrEncoder.encode({0x4cb430?, 0x4cb480?}, 0xc0201630e0?, {0x4ba520?, 0xc00a374600?, 0x4ba520?}, {0x0?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:961 +0x67 fp=0xc0201630a8 sp=0xc020163070 pc=0x494667 encoding/json.condAddrEncoder.encode-fm(0x4ba520?, {0x4ba520?, 0xc00a374600?, 0x30?}, {0x8?, 0xb1?}) :1 +0x58 fp=0xc0201630f0 sp=0xc0201630a8 pc=0x49b858 encoding/json.(*encodeState).reflectValue(0x0?, {0x4ba520?, 0xc00a374600?, 0x40d367?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:359 +0x78 fp=0xc020163150 sp=0xc0201630f0 pc=0x48fe78 encoding/json.(*encodeState).marshal(0xc00a374600?, {0x4ba520?, 0xc00a374600?}, {0x18?, 0x32?}) /usr/local/go/src/encoding/json/encode.go:331 +0xfa fp=0xc0201631c8 sp=0xc020163150 pc=0x48f9fa encoding/json.Marshal({0x4ba520, 0xc00a374600}) /usr/local/go/src/encoding/json/encode.go:160 +0x45 fp=0xc020163228 sp=0xc0201631c8 pc=0x48f205 github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD.MarshalJSON(...) /home/ckuehl/go/pkg/mod/github.com/digitalocean/[email protected]/qmp/raw/autogen.go:2023 go.(*struct { Driver github.com/digitalocean/go-qemu/qmp/raw.BlockdevDriver "json:"driver""; github.com/digitalocean/go-qemu/qmp/raw.BlockdevOptionsNBD }).MarshalJSON(0x4ba520?) :1 +0xf6 fp=0xc020163348 sp=0xc020163228 pc=0x4a3336 encoding/json.marshalerEncoder(0xc00a371980, {0x4ba520?, 0xc00a3745a0?, 0x4ba520?}, {0x40?, 0x28?}) /usr/local/go/src/encoding/json/encode.go:478 +0xbe fp=0xc0201633d0 sp=0xc020163348 pc=0x49079e

goroutine 2 [force gc (idle)]: runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004efb0 sp=0xc00004ef90 pc=0x4365d6 runtime.goparkunlock(...) /usr/local/go/src/runtime/proc.go:369 runtime.forcegchelper() /usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc00004efe0 sp=0xc00004efb0 pc=0x43646d runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004efe8 sp=0xc00004efe0 pc=0x45fb01 created by runtime.init.6 /usr/local/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]: runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004f790 sp=0xc00004f770 pc=0x4365d6 runtime.goparkunlock(...) /usr/local/go/src/runtime/proc.go:369 runtime.bgsweep(0x0?) /usr/local/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc00004f7c8 sp=0xc00004f790 pc=0x423757 runtime.gcenable.func1() /usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc00004f7e0 sp=0xc00004f7c8 pc=0x4185c6 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004f7e8 sp=0xc00004f7e0 pc=0x45fb01 created by runtime.gcenable /usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]: runtime.gopark(0x7467bd528bc6?, 0x10d5655?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004ff70 sp=0xc00004ff50 pc=0x4365d6 runtime.goparkunlock(...) /usr/local/go/src/runtime/proc.go:369 runtime.(*scavengerState).park(0x571800) /usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc00004ffa0 sp=0xc00004ff70 pc=0x4217b3 runtime.bgscavenge(0x0?) /usr/local/go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc00004ffc8 sp=0xc00004ffa0 pc=0x421da5 runtime.gcenable.func2() /usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc00004ffe0 sp=0xc00004ffc8 pc=0x418566 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004ffe8 sp=0xc00004ffe0 pc=0x45fb01 created by runtime.gcenable /usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 5 [finalizer wait]: runtime.gopark(0x571c00?, 0xc000007860?, 0x0?, 0x0?, 0xc00004e770?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004e628 sp=0xc00004e608 pc=0x4365d6 runtime.goparkunlock(...) /usr/local/go/src/runtime/proc.go:369 runtime.runfinq() /usr/local/go/src/runtime/mfinal.go:180 +0x10f fp=0xc00004e7e0 sp=0xc00004e628 pc=0x4176cf runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004e7e8 sp=0xc00004e7e0 pc=0x45fb01 created by runtime.createfing /usr/local/go/src/runtime/mfinal.go:157 +0x45

goroutine 6 [GC worker (idle)]: runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000050750 sp=0xc000050730 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000507e0 sp=0xc000050750 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000507e8 sp=0xc0000507e0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 7 [GC worker (idle)]: runtime.gopark(0x7467d8b83fcd?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000050f50 sp=0xc000050f30 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000050fe0 sp=0xc000050f50 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000050fe8 sp=0xc000050fe0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 8 [GC worker (idle)]: runtime.gopark(0x7467d8b83cec?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000051750 sp=0xc000051730 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000517e0 sp=0xc000051750 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000517e8 sp=0xc0000517e0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 9 [GC worker (idle)]: runtime.gopark(0x7467d8b83f53?, 0x1?, 0x40?, 0x22?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000051f50 sp=0xc000051f30 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000051fe0 sp=0xc000051f50 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000051fe8 sp=0xc000051fe0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 18 [GC worker (idle)]: runtime.gopark(0x7467d8b83d86?, 0x3?, 0x15?, 0xcf?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004a750 sp=0xc00004a730 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00004a7e0 sp=0xc00004a750 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004a7e8 sp=0xc00004a7e0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 34 [GC worker (idle)]: runtime.gopark(0x7467d8b83f6f?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000508750 sp=0xc000508730 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0005087e0 sp=0xc000508750 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0005087e8 sp=0xc0005087e0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 10 [GC worker (idle)]: runtime.gopark(0x7467d8b83f5f?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000504750 sp=0xc000504730 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0005047e0 sp=0xc000504750 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0005047e8 sp=0xc0005047e0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 19 [GC worker (idle)]: runtime.gopark(0x7467d8b83f55?, 0x0?, 0x0?, 0x0?, 0x0?) /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004af50 sp=0xc00004af30 pc=0x4365d6 runtime.gcBgMarkWorker() /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00004afe0 sp=0xc00004af50 pc=0x41a511 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004afe8 sp=0xc00004afe0 pc=0x45fb01 created by runtime.gcBgMarkStartWorkers /usr/local/go/src/runtime/mgc.go:1159 +0x25 exit status 2

connorkuehl avatar Dec 09 '22 01:12 connorkuehl