Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Panic during REST tests in master branch, but not being thrown as error during tests to cause test failure #419

Closed
geauxvirtual opened this issue Oct 20, 2015 · 1 comment
Labels

Comments

@geauxvirtual
Copy link
Contributor

Passing a bad task manifest [negroni] PANIC: runtime error: invalid memory address or nil pointer dereference
goroutine 1369 [running]:
github.com/codegangsta/negroni.(*Recovery).ServeHTTP.func1(0xd60118, 0xc8211be240, 0xc8203c20e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/recovery.go:34 +0xe9
github.com/intelsdi-x/pulse/control.(*pluginControl).validateMetricTypeSubscription(0xc820342a00, 0xda7c80, 0xc8212a59e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/jguidroz/Projects/src/github.com/intelsdi-x/pulse/control/control.go:430 +0xc61
github.com/intelsdi-x/pulse/control.(*pluginControl).ValidateDeps(0xc820342a00, 0xc820215c70, 0x1, 0x1, 0xc820215c80, 0x1, 0x1, 0x0, 0x0, 0x0)
    /Users/jguidroz/Projects/src/github.com/intelsdi-x/pulse/control/control.go:346 +0x151
github.com/intelsdi-x/pulse/scheduler.(*scheduler).CreateTask(0xc821202800, 0xda7a40, 0xc8202149b0, 0xc820030810, 0x1, 0xc8202149f0, 0x2, 0x2, 0x0, 0x0, ...)
    /Users/jguidroz/Projects/src/github.com/intelsdi-x/pulse/scheduler/scheduler.go:172 +0xe0a
github.com/intelsdi-x/pulse/mgmt/rest.(*Server).addTask(0xc8211d14a0, 0xd60118, 0xc8211be240, 0xc8203360e0, 0x0, 0x0, 0x0)
    /Users/jguidroz/Projects/src/github.com/intelsdi-x/pulse/mgmt/rest/task.go:97 +0x528
github.com/intelsdi-x/pulse/mgmt/rest.(*Server).(github.com/intelsdi-x/pulse/mgmt/rest.addTask)-fm(0xd60118, 0xc8211be240, 0xc8203360e0, 0x0, 0x0, 0x0)
    /Users/jguidroz/Projects/src/github.com/intelsdi-x/pulse/mgmt/rest/server.go:197 +0x5c
github.com/julienschmidt/httprouter.(*Router).ServeHTTP(0xc8203be300, 0xd60118, 0xc8211be240, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/julienschmidt/httprouter/router.go:299 +0x193
github.com/codegangsta/negroni.Wrap.func1(0xd60118, 0xc8211be240, 0xc8203360e0, 0xc8203593a0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:41 +0x50
github.com/codegangsta/negroni.HandlerFunc.ServeHTTP(0xc8203c24a0, 0xd60118, 0xc8211be240, 0xc8203360e0, 0xc8203593a0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:24 +0x44
github.com/codegangsta/negroni.middleware.ServeHTTP(0xda5258, 0xc8203c24a0, 0xc8203c2500, 0xd60118, 0xc8211be240, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/codegangsta/negroni.(middleware).ServeHTTP-fm(0xd60118, 0xc8211be240, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:33 +0x53
github.com/codegangsta/negroni.(*Recovery).ServeHTTP(0xc8203c20e0, 0xd60118, 0xc8211be240, 0xc8203360e0, 0xc820359380)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/recovery.go:45 +0x75
github.com/codegangsta/negroni.middleware.ServeHTTP(0xda5230, 0xc8203c20e0, 0xc8203c24e0, 0xd60118, 0xc8211be240, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/codegangsta/negroni.(middleware).ServeHTTP-fm(0xd60118, 0xc8211be240, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:33 +0x53
github.com/intelsdi-x/pulse/mgmt/rest.(*Logger).ServeHTTP(0xc8211f71b0, 0xd60118, 0xc8211be240, 0xc8203360e0, 0xc820359360)
    /Users/jguidroz/Projects/src/github.com/intelsdi-x/pulse/mgmt/rest/log_handler.go:46 +0x387
github.com/codegangsta/negroni.middleware.ServeHTTP(0xda5208, 0xc8211f71b0, 0xc8203c24c0, 0xd60118, 0xc8211be240, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:33 +0xaa
github.com/codegangsta/negroni.(*Negroni).ServeHTTP(0xc8203be2d0, 0xd60080, 0xc8200c2fd0, 0xc8203360e0)
    /Users/jguidroz/Projects/src/github.com/codegangsta/negroni/negroni.go:73 +0x122
net/http.serverHandler.ServeHTTP(0xc8211d1bc0, 0xd60080, 0xc8200c2fd0, 0xc8203360e0)
    /usr/local/Cellar/go/1.5/libexec/src/net/http/server.go:1862 +0x19e
net/http.(*conn).serve(0xc8201a1c30)
    /usr/local/Cellar/go/1.5/libexec/src/net/http/server.go:1361 +0xbee
created by net/http.(*Server).Serve
    /usr/local/Cellar/go/1.5/libexec/src/net/http/server.go:1910 +0x3f6

      Should generate an error ✔
    EnableTask
      enable a stopped task ✔✔
@geauxvirtual
Copy link
Contributor Author

It looks like when a task is created that has no config defined for metrics, config for each metric is nil and not an empty node. The code here https://github.com/intelsdi-x/pulse/blob/master/control/control.go#L430 is calling Merge() on nil when no config is defined in a task (which is what is being passed in for this test). We either need to put a en error check around this Merge(), or always make sure config is at least an empty node.

jcooklin added a commit that referenced this issue Oct 21, 2015
Resolves #419 by checking for nil config before merging
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant