eclipse-symphony / symphony

Symphony project
MIT License
27 stars 17 forks source link

Fix campaign activation improper JSON body format error handling #158

Open DianeHadley opened 2 months ago

DianeHadley commented 2 months ago

When campaign activation json is not properly wrapped with "spec", Symphony crashes on campaign activation with a segmentation violation:

INFO[0135] Symphony API succeeded: GET http://localhost:8082/v1alpha2/targets/registry, spanId: 0000000000000000, traceId: 00000000000000000000000000000000  instance=87386b1e943d scope=coa.runtime type=log ver=unknown
DEBU[0135]   P (Memory State): list states, traceId: 00000000000000000000000000000000  instance=87386b1e943d scope=coa.runtime type=log ver=unknown
INFO[0137] V (Activations Vendor): onActivations, method: POST, traceId: 00000000000000000000000000000000  instance=87386b1e943d scope=coa.runtime type=log ver=unknown
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x14823ba]

goroutine 42 [running]:
github.com/eclipse-symphony/symphony/api/pkg/apis/v1alpha1/managers/activations.(*ActivationsManager).UpsertState(0xc000052140, {0x33cf1b0, 0xc0004f6d50}, {0xc0006f9f80, 0x1c}, {{0x0, 0x0}, {0x0, 0x0}, {{0x3009426, ...}, ...}, ...})
        /home/runner/work/symphony/symphony/api/pkg/apis/v1alpha1/managers/activations/activations-manager.go:141 +0x61a
github.com/eclipse-symphony/symphony/api/pkg/apis/v1alpha1/vendors.(*ActivationsVendor).onActivations(0xc0004307e0, {{0x33cfd10, 0xc00026ac00}, {0xc0005a6960, 0x4}, {0xc0003fb680, 0x3b}, {0x0, 0x0}, {0xc00015ca80, ...}, ...})
        /home/runner/work/symphony/symphony/api/pkg/apis/v1alpha1/vendors/activations-vendor.go:183 +0xd65
github.com/eclipse-symphony/symphony/coa/pkg/apis/v1alpha2/bindings/http.wrapAsHTTPHandler.func1(0xc00026ac00)
        /home/runner/work/symphony/symphony/coa/pkg/apis/v1alpha2/bindings/http/http.go:135 +0x335
github.com/fasthttp/router.(*Router).Handler(0xc000590fc0, 0xc00026ac00)
        [/home/runner/go/pkg/mod/github.com/fasthttp/router@v1.4.12/router.go:414](mailto:/home/runner/go/pkg/mod/github.com/fasthttp/router@v1.4.12/router.go:414) +0x46a
github.com/eclipse-symphony/symphony/coa/pkg/apis/v1alpha2/bindings/http.JWT.JWT.func1(0xc00026ac00)
        /home/runner/work/symphony/symphony/coa/pkg/apis/v1alpha2/bindings/http/jwt.go:70 +0x3ee
github.com/eclipse-symphony/symphony/coa/pkg/apis/v1alpha2/bindings/http.CORS.CORS.func1(0xc00026ac00)
        /home/runner/work/symphony/symphony/coa/pkg/apis/v1alpha2/bindings/http/cors.go:42 +0x237
github.com/valyala/fasthttp.(*Server).serveConn(0xc0007146c0, {0x33d8f88?, 0xc00011c098})
        [/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/server.go:2311](mailto:/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/server.go:2311) +0x1268
github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc0007575e0, 0xc000320b00)
        [/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:224](mailto:/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:224) +0xa9
github.com/valyala/fasthttp.(*workerPool).getCh.func1()
        [/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:196](mailto:/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:196) +0x38
created by github.com/valyala/fasthttp.(*workerPool).getCh
        [/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:195](mailto:/home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:195) +0x1b0
  Launching Symphony in standalone mode ...failed 

  Failed: exit status 2

Campaign activation json template to hit this error:

{
        "campaign": "{{CAMPAIGN_NAME}}",
        "name": "{{ACTIVATION_NAME}}",
        "stage": "",
        "inputs": { }    
}
msftcoderdjw commented 3 weeks ago

What is the progress of this issue? @Haishi2016