apache / apisix-dashboard

Dashboard for Apache APISIX
https://apisix.apache.org/
Apache License 2.0
955 stars 511 forks source link

bug: Stack overflow error when importing an openAPI .yaml file through the APISIX Dashboard #2606

Open moraKevin opened 1 year ago

moraKevin commented 1 year ago

Current Behavior

Greetings, everyone!

When importing an openAPI .yaml file in the APISIX Dashboard, if the file has more than a couple of endpoints described (usually 4 or 5 is enough for the bug to occur), the dashboard throws a Network error and a stack overflow error is thrown in the dashboard logs.

I have tried importing a .yaml file with only 1 or 2 endpoints, and all goes well. However, when adding a couple more endpoints, the behavior above described happens, and the dashboard crashes.

image

Expected Behavior

It should be possible to import an openAPI .yaml file with more than a few endpoints without the dashboard crashing

Error Logs

runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc020e803b8 stack=[0xc020e80000, 0xc040e80000]
fatal error: stack overflow

runtime stack:
runtime.throw(0x10288be, 0xe)
        /usr/local/go/src/runtime/panic.go:1117 +0x72
runtime.newstack()
        /usr/local/go/src/runtime/stack.go:1069 +0x7ed
runtime.morestack()
        /usr/local/go/src/runtime/asm_amd64.s:458 +0x8f

goroutine 74 [running]:
runtime.heapBitsSetType(0xc000666500, 0x40, 0x40, 0xe994a0)
        /usr/local/go/src/runtime/mbitmap.go:815 +0xc05 fp=0xc020e803c8 sp=0xc020e803c0 pc=0x418d65
runtime.mallocgc(0x40, 0xe994a0, 0x1, 0x7fe9a0541108)
        /usr/local/go/src/runtime/malloc.go:1096 +0x5c5 fp=0xc020e80450 sp=0xc020e803c8 pc=0x40f6c5
runtime.makeslice(0xe994a0, 0x4, 0x4, 0x1)
        /usr/local/go/src/runtime/slice.go:98 +0x6c fp=0xc020e80480 sp=0xc020e80450 pc=0x45062c
strings.genSplit(0xc00039e240, 0x24, 0x101e6d1, 0x1, 0x0, 0xffffffffffffffff, 0x18, 0xc000088800, 0x0)
        /usr/local/go/src/strings/strings.go:247 +0x71 fp=0xc020e804d8 sp=0xc020e80480 pc=0x513e51
strings.Split(...)
        /usr/local/go/src/strings/strings.go:299
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:532 +0x8f fp=0xc020e805b8 sp=0xc020e804d8 pc=0xd76cef
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e80698 sp=0xc020e805b8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e80778 sp=0xc020e80698 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e80858 sp=0xc020e80778 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e80938 sp=0xc020e80858 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e80a18 sp=0xc020e80938 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e80af8 sp=0xc020e80a18 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f170, 0x26, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e80bd8 sp=0xc020e80af8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e80cb8 sp=0xc020e80bd8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e80d98 sp=0xc020e80cb8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e80e78 sp=0xc020e80d98 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e80f58 sp=0xc020e80e78 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e81038 sp=0xc020e80f58 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81118 sp=0xc020e81038 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e811f8 sp=0xc020e81118 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e812d8 sp=0xc020e811f8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e813b8 sp=0xc020e812d8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81498 sp=0xc020e813b8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e81578 sp=0xc020e81498 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81658 sp=0xc020e81578 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e81738 sp=0xc020e81658 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81818 sp=0xc020e81738 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e818f8 sp=0xc020e81818 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee01a0, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e819d8 sp=0xc020e818f8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81ab8 sp=0xc020e819d8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e81b98 sp=0xc020e81ab8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81c78 sp=0xc020e81b98 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e81d58 sp=0xc020e81c78 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000316440, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81e38 sp=0xc020e81d58 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81f18 sp=0xc020e81e38 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000316440, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e81ff8 sp=0xc020e81f18 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e820d8 sp=0xc020e81ff8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e821b8 sp=0xc020e820d8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82298 sp=0xc020e821b8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e82378 sp=0xc020e82298 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82458 sp=0xc020e82378 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e82538 sp=0xc020e82458 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82618 sp=0xc020e82538 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e826f8 sp=0xc020e82618 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f170, 0x26, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e827d8 sp=0xc020e826f8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e828b8 sp=0xc020e827d8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e82998 sp=0xc020e828b8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82a78 sp=0xc020e82998 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e82b58 sp=0xc020e82a78 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82c38 sp=0xc020e82b58 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e82d18 sp=0xc020e82c38 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82df8 sp=0xc020e82d18 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e82ed8 sp=0xc020e82df8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e82fb8 sp=0xc020e82ed8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000316440, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83098 sp=0xc020e82fb8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83178 sp=0xc020e83098 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000316440, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83258 sp=0xc020e83178 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83338 sp=0xc020e83258 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83418 sp=0xc020e83338 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e834f8 sp=0xc020e83418 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e835d8 sp=0xc020e834f8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e836b8 sp=0xc020e835d8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83798 sp=0xc020e836b8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e83878 sp=0xc020e83798 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee01a0, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83958 sp=0xc020e83878 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83a38 sp=0xc020e83958 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e83b18 sp=0xc020e83a38 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83bf8 sp=0xc020e83b18 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e83cd8 sp=0xc020e83bf8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83db8 sp=0xc020e83cd8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e83e98 sp=0xc020e83db8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e83f78 sp=0xc020e83e98 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84058 sp=0xc020e83f78 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84138 sp=0xc020e84058 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84218 sp=0xc020e84138 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e842f8 sp=0xc020e84218 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e843d8 sp=0xc020e842f8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000316440, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e844b8 sp=0xc020e843d8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84598 sp=0xc020e844b8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84678 sp=0xc020e84598 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84758 sp=0xc020e84678 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84838 sp=0xc020e84758 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84918 sp=0xc020e84838 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e849f8 sp=0xc020e84918 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84ad8 sp=0xc020e849f8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84bb8 sp=0xc020e84ad8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84c98 sp=0xc020e84bb8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84d78 sp=0xc020e84c98 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e84e58 sp=0xc020e84d78 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e84f38 sp=0xc020e84e58 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e85018 sp=0xc020e84f38 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e850f8 sp=0xc020e85018 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039fce0, 0x26, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e851d8 sp=0xc020e850f8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f140, 0x24, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e852b8 sp=0xc020e851d8 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e85398 sp=0xc020e852b8 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e85478 sp=0xc020e85398 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039f170, 0x26, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:543 +0x3af fp=0xc020e85558 sp=0xc020e85478 pc=0xd7700f
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000317ca0, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e85638 sp=0xc020e85558 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000316440, 0x1d, 0xc0003bc358, 0x8)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e85718 sp=0xc020e85638 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc000ee0180, 0x1d, 0xc0003bc358, 0xf)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e857f8 sp=0xc020e85718 pc=0xd76faf
github.com/apisix/manager-api/internal/handler/data_loader.getParameters(0xc00039e240, 0x24, 0xc0003bc358, 0x11)
        /apisix-dashboard/api/internal/handler/data_loader/route_import.go:545 +0x34f fp=0xc020e858d8 sp=0xc020e857f8 pc=0xd76faf
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:3013 +0x39b

goroutine 1 [select]:
github.com/apisix/manager-api/cmd.manageAPI(0x0, 0x0)
        /apisix-dashboard/api/cmd/root.go:73 +0x1cb
github.com/apisix/manager-api/cmd.glob..func1(0x175d400, 0xc0000a6a60, 0x0, 0x2, 0x0, 0x0)
        /apisix-dashboard/api/cmd/root.go:36 +0x25
github.com/spf13/cobra.(*Command).execute(0x175d400, 0xc0000321c0, 0x2, 0x2, 0x175d400, 0xc0000321c0)
        /root/gopath/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:762 +0x472
github.com/spf13/cobra.(*Command).ExecuteC(0x175d400, 0xc000000180, 0x200000003, 0xc000000180)
        /root/gopath/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:852 +0x2fe
github.com/spf13/cobra.(*Command).Execute(...)
        /root/gopath/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:800
github.com/apisix/manager-api/cmd.Execute()
        /apisix-dashboard/api/cmd/root.go:51 +0x31
main.main()
        /apisix-dashboard/api/main.go:24 +0x25

goroutine 50 [select]:
google.golang.org/grpc.(*ccBalancerWrapper).watcher(0xc000250280)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/balancer_conn_wrappers.go:69 +0xac
created by google.golang.org/grpc.newCCBalancerWrapper
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/balancer_conn_wrappers.go:60 +0x172

goroutine 51 [chan receive]:
google.golang.org/grpc.(*addrConn).resetTransport(0xc00013c2c0)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/clientconn.go:1164 +0x465
created by google.golang.org/grpc.(*addrConn).connect
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/clientconn.go:800 +0x12a

goroutine 53 [IO wait]:
internal/poll.runtime_pollWait(0x7fe9a03c5da0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003c9e18, 0x72, 0x8000, 0x8000, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0003c9e00, 0xc000498000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc0003c9e00, 0xc000498000, 0x8000, 0x8000, 0xbb16be, 0x800010601, 0x0)
        /usr/local/go/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000388020, 0xc000498000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:183 +0x91
bufio.(*Reader).Read(0xc0006f9200, 0xc00016a1f8, 0x9, 0x9, 0x14, 0x7fe9a05415b8, 0x18)
        /usr/local/go/src/bufio/bufio.go:227 +0x222
io.ReadAtLeast(0x1167740, 0xc0006f9200, 0xc00016a1f8, 0x9, 0x9, 0x9, 0xc0005d5dd0, 0x45a8f3, 0x130e303fbdf7de)
        /usr/local/go/src/io/io.go:328 +0x87
io.ReadFull(...)
        /usr/local/go/src/io/io.go:347
golang.org/x/net/http2.readFrameHeader(0xc00016a1f8, 0x9, 0x9, 0x1167740, 0xc0006f9200, 0x0, 0x0, 0xc0b95851a56ab453, 0x2807826)
        /root/gopath/pkg/mod/golang.org/x/net@v0.0.0-20210510120150-4163338589ed/http2/frame.go:237 +0x89
golang.org/x/net/http2.(*Framer).ReadFrame(0xc00016a1c0, 0xc0005f1518, 0xc0005f1518, 0x0, 0x0)
        /root/gopath/pkg/mod/golang.org/x/net@v0.0.0-20210510120150-4163338589ed/http2/frame.go:492 +0xa5
google.golang.org/grpc/internal/transport.(*http2Client).reader(0xc0003b2380)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/http2_client.go:1264 +0x185
created by google.golang.org/grpc/internal/transport.newHTTP2Client
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/http2_client.go:300 +0xd51

goroutine 22 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc0000e8000, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 54 [select]:
google.golang.org/grpc/internal/transport.(*controlBuffer).get(0xc0006f6af0, 0x1, 0x0, 0x0, 0x0, 0x0)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/controlbuf.go:395 +0xff
google.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc000097620, 0x0, 0x0)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/controlbuf.go:513 +0x1dd
google.golang.org/grpc/internal/transport.newHTTP2Client.func3(0xc0003b2380)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/http2_client.go:346 +0x7b
created by google.golang.org/grpc/internal/transport.newHTTP2Client
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/http2_client.go:344 +0xf27

goroutine 55 [select]:
context.propagateCancel.func1(0x117ff70, 0xc0006f56c0, 0x1173268, 0xc00007c480)
        /usr/local/go/src/context/context.go:279 +0xab
created by context.propagateCancel
        /usr/local/go/src/context/context.go:278 +0x1fb

goroutine 56 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).run(0xc0003bca90)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:524 +0x3c5
created by go.etcd.io/etcd/clientv3.(*watcher).newWatcherGrpcStream
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:277 +0x2eb

goroutine 59 [select]:
google.golang.org/grpc/internal/transport.(*recvBufferReader).readClient(0xc0006f6be0, 0xc0005dc0b8, 0x5, 0x5, 0x203000, 0x203000, 0xc00010a8f8)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/transport.go:186 +0xb1
google.golang.org/grpc/internal/transport.(*recvBufferReader).Read(0xc0006f6be0, 0xc0005dc0b8, 0x5, 0x5, 0xfa71c0, 0xc0002807c8, 0x106ba38)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/transport.go:166 +0x190
google.golang.org/grpc/internal/transport.(*transportReader).Read(0xc0003803f0, 0xc0005dc0b8, 0x5, 0x5, 0xc00041ca00, 0xc00041ca00, 0xbc9a3c)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/transport.go:479 +0x55
io.ReadAtLeast(0x1168ae0, 0xc0003803f0, 0xc0005dc0b8, 0x5, 0x5, 0x5, 0x2, 0xc00010a960, 0xc00041ca70)
        /usr/local/go/src/io/io.go:328 +0x87
io.ReadFull(...)
        /usr/local/go/src/io/io.go:347
google.golang.org/grpc/internal/transport.(*Stream).Read(0xc00012a500, 0xc0005dc0b8, 0x5, 0x5, 0xc000344000, 0xef4d40, 0xfe2b60)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/internal/transport/transport.go:463 +0xd2
google.golang.org/grpc.(*parser).recvMsg(0xc0005dc0a8, 0x7fffffff, 0xc000230850, 0xc00003c100, 0x20, 0x20, 0x0, 0x0)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/rpc_util.go:508 +0x63
google.golang.org/grpc.recvAndDecompress(0xc0005dc0a8, 0xc00012a500, 0x0, 0x0, 0x7fffffff, 0x0, 0x0, 0x0, 0xc00003c100, 0x20, ...)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/rpc_util.go:639 +0x4d
google.golang.org/grpc.recv(0xc0005dc0a8, 0x7fe97574d370, 0x179b6e0, 0xc00012a500, 0x0, 0x0, 0xfe2b60, 0xc0000b0070, 0x7fffffff, 0x0, ...)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/rpc_util.go:707 +0x9b
google.golang.org/grpc.(*csAttempt).recvMsg(0xc0006ebf80, 0xfe2b60, 0xc0000b0070, 0x0, 0x43b7dc, 0xc00041cd80)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:885 +0xee
google.golang.org/grpc.(*clientStream).RecvMsg.func1(0xc0006ebf80, 0x8, 0x4079a5)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:736 +0x46
google.golang.org/grpc.(*clientStream).withRetry(0xc0003aa5a0, 0xc00041cea0, 0xc00041ce70, 0x70, 0x70)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:590 +0x3df
google.golang.org/grpc.(*clientStream).RecvMsg(0xc0003aa5a0, 0xfe2b60, 0xc0000b0070, 0x2, 0x2)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:735 +0x105
github.com/coreos/etcd/etcdserver/etcdserverpb.(*watchWatchClient).Recv(0xc0006f5770, 0xc00041cf50, 0x0, 0x1)
        /root/gopath/pkg/mod/github.com/coreos/etcd@v3.3.25+incompatible/etcdserver/etcdserverpb/rpc.pb.go:6475 +0x62
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveWatchClient(0xc0003bca90, 0x1187920, 0xc0006f5770)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:716 +0x5c
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).newWatchClient
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:871 +0x556

goroutine 58 [select]:
google.golang.org/grpc.newClientStream.func5(0xc000118380, 0xc0003aa5a0, 0x117f9c0, 0xc0003cff80)
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:319 +0xaa
created by google.golang.org/grpc.newClientStream
        /root/gopath/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:318 +0xbf0

goroutine 60 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc00051f290, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 35 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000097e00, 0xc000386240)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 36 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc000386240, 0xc0004f2750)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 23 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc0006f93e0, 0xc0006f9500)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 24 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc0006f9500, 0xc0003d0cf0)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 37 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000145c30, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 25 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000386de0, 0xc0006f9b60)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 26 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc0006f9b60, 0xc0005fac60)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 38 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000145ce0, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 27 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000386f60, 0xc0006f9f20)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 28 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc0006f9f20, 0xc0005fb050)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 39 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000145d90, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 40 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000387260, 0xc000387440)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 41 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc000387440, 0xc0005fb440)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 29 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc00029a000, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 30 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc0002885a0, 0xc000288780)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 31 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc000288780, 0xc0003d1440)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 42 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000145e40, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 32 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000387800, 0xc000288a20)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 33 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc000288a20, 0xc0005fb950)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 43 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000028000, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 66 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000387b60, 0xc000288c60)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 67 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc000288c60, 0xc0005fbb90)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 44 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc0000280b0, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 68 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc000387ec0, 0xc000288ea0)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 69 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc000288ea0, 0xc0005fbdd0)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 45 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000028160, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 70 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc00002c240, 0xc0002890e0)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 71 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc0002890e0, 0xc0002a2090)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 46 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc000028210, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 47 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc00002c5a0, 0xc00002c780)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 48 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc00002c780, 0xc0002a2630)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 9 [select]:
go.etcd.io/etcd/clientv3.(*watchGrpcStream).serveSubstream(0xc0003bca90, 0xc0006a2000, 0xc00010a720)
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:762 +0x253
created by go.etcd.io/etcd/clientv3.(*watchGrpcStream).run
        /root/gopath/pkg/mod/go.etcd.io/etcd@v3.3.25+incompatible/clientv3/watch.go:541 +0xdf9

goroutine 10 [chan receive]:
github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch.func1(0xc00007e720, 0xc00007e900)
        /apisix-dashboard/api/internal/core/storage/etcd.go:212 +0x3f9
created by github.com/apisix/manager-api/internal/core/storage.(*EtcdV3Storage).Watch
        /apisix-dashboard/api/internal/core/storage/etcd.go:210 +0x10f

goroutine 11 [chan receive]:
github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init.func1(0xc00007e900, 0xc00002e240)
        /apisix-dashboard/api/internal/core/store/store.go:122 +0x435
created by github.com/apisix/manager-api/internal/core/store.(*GenericStore).Init
        /apisix-dashboard/api/internal/core/store/store.go:120 +0x3c6

goroutine 12 [IO wait]:
internal/poll.runtime_pollWait(0x7fe9a03c5cb8, 0x72, 0x0)
        /usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0006cc118, 0x72, 0x0, 0x0, 0x102245a)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc0006cc100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc0006cc100, 0x36c0c5e2b4244262, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0003d44c8, 0x6304e9da, 0xc00041ada8, 0x4d1746)
        /usr/local/go/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0003d44c8, 0xc00041adf8, 0x18, 0xc000688780, 0x77413b)
        /usr/local/go/src/net/tcpsock.go:261 +0x65
net/http.(*Server).Serve(0xc0000fc380, 0x117cf48, 0xc0003d44c8, 0x0, 0x0)
        /usr/local/go/src/net/http/server.go:2981 +0x285
net/http.(*Server).ListenAndServe(0xc0000fc380, 0xc0006bccc0, 0x98)
        /usr/local/go/src/net/http/server.go:2910 +0xba
github.com/apisix/manager-api/internal/core/server.(*server).Start.func1(0xc0003d4150, 0xc0003cdce0)
        /apisix-dashboard/api/internal/core/server/server.go:61 +0x32
created by github.com/apisix/manager-api/internal/core/server.(*server).Start
        /apisix-dashboard/api/internal/core/server/server.go:60 +0x125

goroutine 14 [syscall]:
os/signal.signal_recv(0x28)
        /usr/local/go/src/runtime/sigqueue.go:168 +0xa5
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x25
created by os/signal.Notify.func1.1
        /usr/local/go/src/os/signal/signal.go:151 +0x45

goroutine 75 [IO wait]:
internal/poll.runtime_pollWait(0x7fe9a03c5bd0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0006cc298, 0x72, 0x0, 0x1, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0006cc280, 0xc000381001, 0x1, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc0006cc280, 0xc000381001, 0x1, 0x1, 0xc00007e5a0, 0x0, 0xc000682058)
        /usr/local/go/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0004080d0, 0xc000381001, 0x1, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:183 +0x91
net/http.(*connReader).backgroundRead(0xc000380ff0)
        /usr/local/go/src/net/http/server.go:692 +0x58
created by net/http.(*connReader).startBackgroundRead
        /usr/local/go/src/net/http/server.go:688 +0xd5

Steps to Reproduce

  1. Run APISIX dashboard in a Linux environment with the manager-api -p /usr/local/apisix/dashboard/ command
  2. Open the dashboard and try importing a .yaml openAPI file with more than 5 endpoints

Environment

tokers commented 1 year ago

cc @bzp2010

moraKevin commented 1 year ago

Just a follow-up: Upon further testing, I discovered that a single endpoint from the .yaml file was causing the issue. When the request body of that endpoint was removed, all worked properly. The request body of that endpoint was:

requestBody:
        content: '*/*':
        schema: $ref: '#/components/schemas/SystemSchema'
        required: false

The 'SystemSchema' contained around 35 parameters, so it was quite large, maybe that was the issue?

Baoyuantop commented 1 year ago

The 'SystemSchema' contained around 35 parameters, so it was quite large, maybe that was the issue?

I also tested with this number of files and found no problems in the latest version.