coralproject / pillar

Deprecated: Service layer for the Coral ecosystem
Other
4 stars 1 forks source link

Pillar panics when hydrating form galleries #126

Closed jde closed 8 years ago

jde commented 8 years ago

https://pillar_stg.coralproject.net/pillar_api/api/form_gallery/57519dbfd466730006109b85

Results in

PANIC: runtime error: index out of range
goroutine 125900 [running]:
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(*Recovery).ServeHTTP.func1(0x7f85c05c5c28, 0xc820444f80, 0xc820104ce0)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/recovery.go:34 +0xe9
panic(0x8cd300, 0xc82000a060)
    /usr/local/go/src/runtime/panic.go:443 +0x4e9
github.com/coralproject/pillar/pkg/service.hydrateFormGallery(0xc820275170, 0xc, 0xc8202751a0, 0xc, 0xc8202362d0, 0x1, 0x1, 0xecee394bf, 0x1036640, 0xbf6480, ...)
    /go/src/github.com/coralproject/pillar/pkg/service/form_gallery.go:165 +0x7d6
github.com/coralproject/pillar/pkg/service.GetFormGalleriesByForm(0xc820249950, 0x0, 0x0, 0x0, 0xc820499438)
    /go/src/github.com/coralproject/pillar/pkg/service/form_gallery.go:208 +0x7e6
github.com/coralproject/pillar/app/pillar/handler.GetFormGalleriesByForm(0xc820249950)
    /go/src/github.com/coralproject/pillar/app/pillar/handler/ask.go:95 +0x25
github.com/coralproject/pillar/pkg/web.HandlerFunc.ServeHTTP(0xa562c0, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/pkg/web/web.go:24 +0x74
github.com/coralproject/pillar/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc820016ff0, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/gorilla/mux/mux.go:100 +0x29e
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.Wrap.func1(0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340, 0xc820164c00)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:41 +0x50
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.HandlerFunc.ServeHTTP(0xc82019d9e0, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340, 0xc820164c00)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:24 +0x44
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.middleware.ServeHTTP(0x7f85c05c0768, 0xc82019d9e0, 0xc82019da80, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(middleware).ServeHTTP-fm(0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0x53
github.com/coralproject/pillar/vendor/github.com/rs/cors.(*Cors).ServeHTTP(0xc8200b8160, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340, 0xc820164be0)
    /go/src/github.com/coralproject/pillar/vendor/github.com/rs/cors/cors.go:240 +0x196
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.middleware.ServeHTTP(0x7f85c05c0790, 0xc8200b8160, 0xc82019da60, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(middleware).ServeHTTP-fm(0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0x53
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(*Static).ServeHTTP(0xc82012c570, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340, 0xc820164bc0)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/static.go:49 +0x2e0
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.middleware.ServeHTTP(0x7f85c05c0740, 0xc82012c570, 0xc82019da40, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(middleware).ServeHTTP-fm(0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0x53
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(*Logger).ServeHTTP(0xc820026118, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340, 0xc820164ba0)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/logger.go:25 +0x1f4
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.middleware.ServeHTTP(0x7f85c05c0718, 0xc820026118, 0xc82019da20, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(middleware).ServeHTTP-fm(0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0x53
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(*Recovery).ServeHTTP(0xc820104ce0, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340, 0xc820164b80)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/recovery.go:45 +0x75
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.middleware.ServeHTTP(0x7f85c05c06f0, 0xc820104ce0, 0xc82019da00, 0x7f85c05c5c28, 0xc820444f80, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni.(*Negroni).ServeHTTP(0xc82012c5d0, 0x7f85c05c5b90, 0xc82005c270, 0xc8201e5340)
    /go/src/github.com/coralproject/pillar/vendor/github.com/codegangsta/negroni/negroni.go:73 +0x122
net/http.serverHandler.ServeHTTP(0xc8201c4000, 0x7f85c05c5b90, 0xc82005c270, 0xc8201e5340)
    /usr/local/go/src/net/http/server.go:2081 +0x19e
net/http.(*conn).serve(0xc820132b80)
    /usr/local/go/src/net/http/server.go:1472 +0xf2e
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2137 +0x44e

Reported by @riley

jde commented 8 years ago

There was a bug in which I was using the wrong index to copy the identity fields into the form gallery while hydrating. Fixed here: https://github.com/coralproject/pillar/commit/510d6022cbfdb873913b3117eb864aafb8d85115