pb33f / wiretap

The world's coolest API Validation and compliance tool. Validate APIs against OpenAPI specifications and much more
https://pb33f.io/wiretap/
Other
84 stars 16 forks source link

SIGSEGV #123

Open hw-dwalter opened 1 month ago

hw-dwalter commented 1 month ago

started with docker as described. issued api call and get this segfault:

wiretap-wiretap-1  | panic: runtime error: invalid memory address or nil pointer dereference [recovered]
wiretap-wiretap-1  |    panic: runtime error: invalid memory address or nil pointer dereference
wiretap-wiretap-1  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x8aa393]
wiretap-wiretap-1  | 
wiretap-wiretap-1  | 
wiretap-wiretap-1  | goroutine 488 [running]:
wiretap-wiretap-1  | gopkg.in/yaml%2ev3.handleErr(0xc0006a0858)
wiretap-wiretap-1  |    /go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/yaml.go:294 +0x6d
wiretap-wiretap-1  | panic({0xd4c780?, 0x1e62a90?})
wiretap-wiretap-1  |    /usr/local/go/src/runtime/panic.go:914 +0x21f
wiretap-wiretap-1  | gopkg.in/yaml%2ev3.(*Node).Encode(0xc0005c4780, {0xddcfc0, 0xc000357720})
wiretap-wiretap-1  |    /go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/yaml.go:269 +0x593
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc0005b0500, 0xc0005c41e0, 0xc0005be5a0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:514 +0xb96
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).Render(0xc0005b0500)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:257 +0x236
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high/base.(*SchemaProxy).MarshalYAMLInline(0xc000362880)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/base/schema_proxy.go:230 +0xb7
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc0005b0140, 0xc0005a8820, 0xc0005be3c0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:459 +0xde2
wiretap-wiretap-1  | github.com/pb33f/libopenapi/orderedmap.(*Map[...]).ToYamlNode(0x16f7980, {0x16e0040, 0xc0005b0140}, {0xe6d200, 0xc000363b80})
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/orderedmap/builder.go:81 +0x14e
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc0005b0140, 0xc0005a85a0, 0xc0005379e0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:431 +0x737
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).Render(0xc0005b0140)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:257 +0x236
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high/base.(*SchemaProxy).MarshalYAMLInline(0xc000541140)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/base/schema_proxy.go:230 +0xb7
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc0000174a0, 0xc000393a40, 0xc000536fc0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:459 +0xde2
wiretap-wiretap-1  | github.com/pb33f/libopenapi/orderedmap.(*Map[...]).ToYamlNode(0x16f7980, {0x16e0040, 0xc0000174a0}, {0xe6d200, 0xc000541240})
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/orderedmap/builder.go:81 +0x14e
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc0000174a0, 0xc00007f7c0, 0xc00014b620)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:431 +0x737
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).Render(0xc0000174a0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:257 +0x236
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high/base.(*SchemaProxy).MarshalYAMLInline(0xc0004987c0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/base/schema_proxy.go:230 +0xb7
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc000016730, 0xc00007f540, 0xc00014a720)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:459 +0xde2
wiretap-wiretap-1  | github.com/pb33f/libopenapi/orderedmap.(*Map[...]).ToYamlNode(0x16f7980, {0x16e0040, 0xc000016730}, {0xe6d200, 0xc000498800})
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/orderedmap/builder.go:81 +0x14e
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).AddYAMLNode(0xc000016730, 0xc00007f040, 0xc00014a6c0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:431 +0x737
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).Render(0xc000016730)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/node_builder.go:257 +0x236
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high/base.(*Schema).MarshalYAMLInline(0xc0002a5680)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/base/schema.go:529 +0x6a
wiretap-wiretap-1  | github.com/pb33f/libopenapi/datamodel/high/base.(*Schema).RenderInline(0xc000540540?)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi@v0.16.6/datamodel/high/base/schema.go:478 +0x13
wiretap-wiretap-1  | github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).checkResponseSchema(0xc0004984c0, 0xc0002b5f20?, 0xc000470700?, {0xc000470700?, 0x16e7028?}, 0xc00040e1e0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.56/responses/validate_body.go:142 +0x146
wiretap-wiretap-1  | github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).ValidateResponseBody(0xc0004984c0, 0xc000566a00, 0xc00029a2d0)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.56/responses/validate_body.go:66 +0x4ff
wiretap-wiretap-1  | github.com/pb33f/libopenapi-validator.(*validator).ValidateHttpResponse(0xc00055c400, 0x450a85?, 0xc000064ef8?)
wiretap-wiretap-1  |    /go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.56/validator.go:120 +0xd3
wiretap-wiretap-1  | github.com/pb33f/wiretap/daemon.(*WiretapService).ValidateResponse(0xc00001d5f0, 0xc00057e6c0, 0xc00050a2a0?)
wiretap-wiretap-1  |    /work/daemon/validate.go:19 +0x68
wiretap-wiretap-1  | created by github.com/pb33f/wiretap/daemon.(*WiretapService).handleHttpRequest in goroutine 469
wiretap-wiretap-1  |    /work/daemon/handle_request.go:176 +0xe91
daveshanley commented 1 month ago

Would you be able to share the spec that caused this? It's an issue being thrown at the bottom of the stack, by a dependency of the project. I'd like to see if I can patch it, but I need a way to trigger it.