8000 Tips for debugging BindValidRequest() errors? · Issue #773 · go-swagger/go-swagger · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Tips for debugging BindValidRequest() errors? #773
Closed
@SandyWalsh

Description

@SandyWalsh

Problem statement

I'm trying to debug an issue with a bad POST handler. The problem seems to stem from BindValidRequest in operations.post_foo.go during the o.context.Respond() call.

I'd like to find the offending portion of the input data. Or some details on where the input parameter unmarsaling occurs (I looked at https://github.com/go-swagger/go-swagger/blob/master/design.md do no avail)

Looking at the stack trace leads me to go-openapi/middleware/context.go but no particulars what might be going on.

2016/12/02 17:45:05 http: panic serving 127.0.0.1:35882: runtime error: invalid memory address or nil pointer dereference
goroutine 12 [running]:
net/http.(*conn).serve.func1(0xc42074a300)
        /usr/local/go/src/net/http/server.go:1491 +0x12a
panic(0x8c9b80, 0xc4200120b0)
        /usr/local/go/src/runtime/panic.go:458 +0x243
code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware.(*Context).Respond(0xc420700980, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0, 0xc420013990, 0x1, 0x1, 0xc42001b180, 0x8ca8a0, 0xc420446600)
        /home/sandy/go/src/code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware/context.go:438 +0x7b1
code.foo.com/MyCo/mosaics-api/server/restapi/operations.(*PostMosaicExperimentalMosaics).ServeHTTP(0xc42031a660, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /home/sandy/go/src/code.foo.com/MyCo/mosaics-api/server/restapi/operations/post_mosaic_experimental_mosaics.go:49 +0x34d
code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware.NewOperationExecutor.func1(0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /home/sandy/go/src/code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware/operation.go:24 +0x69
net/http.HandlerFunc.ServeHTTP(0xc420107b50, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /usr/local/go/src/net/http/server.go:1726 +0x44
code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware.NewRouter.func1(0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /home/sandy/go/src/code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware/router.go:89 +0x478
net/http.HandlerFunc.ServeHTTP(0xc42078f680, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /usr/local/go/src/net/http/server.go:1726 +0x44
code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware.Redoc.func1(0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /home/sandy/go/src/code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware/redoc.go:72 +0xac
net/http.HandlerFunc.ServeHTTP(0xc42078f800, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /usr/local/go/src/net/http/server.go:1726 +0x44
code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware.Spec.func1(0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /home/sandy/go/src/code.foo.com/MyCo/mosaics-api/vendor/github.com/go-openapi/runtime/middleware/spec.go:45 +0x8b
net/http.HandlerFunc.ServeHTTP(0xc42078f840, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /usr/local/go/src/net/http/server.go:1726 +0x44
net/http.serverHandler.ServeHTTP(0xc420791980, 0xc0ffa0, 0xc4206de340, 0xc42066e0f0)
        /usr/local/go/src/net/http/server.go:2202 +0x7d
net/http.(*conn).serve(0xc42074a300, 0xc109a0, 0xc420744340)
        /usr/local/go/src/net/http/server.go:1579 +0x4b7
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:2293 +0x44d

The code in context.go

430 >---if err, ok := data.(error); ok {
431 >--->---if format == "" {
432 >--->--->---rw.Header().Set(runtime.HeaderContentType, runtime.JSONMime)
433 >--->---}
434 >--->---if route == nil || route.Operation == nil {
435 >--->--->---c.api.ServeErrorFor("")(rw, r, err)
436 >--->--->---return
437 >--->---}

438 >--->---c.api.ServeErrorFor(route.Operation.ID)(rw, r, err)

439 >--->---return
440 >---}

... which kinda leaves me at a dead-end.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0