We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
If the proto files used in a GRPC omits the package specifier and the k6 GRPC client uses reflection, it will result in a error
ERRO[0002] panic: runtime error: invalid memory address or nil pointer dereference
The package specifier is optional as per the proto spec so the reflection should not result in an error
0.45
All
No response
// based on https://grpc.io/docs/guides/concepts.html syntax = "proto2"; service HelloService { rpc SayHello(HelloRequest) returns (HelloResponse); rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse); rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse); rpc BidiHello(stream HelloRequest) returns (stream HelloResponse); } message HelloRequest { optional string greeting = 1; } message HelloResponse { required string reply = 1; }
No Error
Error produced
ERRO[0002] panic: runtime error: invalid memory address or nil pointer dereference goroutine 108 [running]: runtime/debug.Stack() runtime/debug/stack.go:24 +0x65 go.k6.io/k6/js/common.RunWithPanicCatching.func1() go.k6.io/[email protected]/js/common/util.go:82 +0x1f3 panic({0x1976e80, 0x2d12a50}) runtime/panic.go:884 +0x213 github.com/dop251/goja.(*Runtime).runWrapped.func1() github.com/dop251/[email protected]/runtime.go:2516 +0x185 panic({0x1976e80, 0x2d12a50}) runtime/panic.go:884 +0x213 github.com/dop251/goja.(*vm).handleThrow(0xc000c9c480, {0x1976e80, 0x2d12a50}) github.com/dop251/[email protected]/vm.go:788 +0x497 github.com/dop251/goja.(*vm).try.func1() github.com/dop251/[email protected]/vm.go:807 +0x45 panic({0x1976e80, 0x2d12a50}) runtime/panic.go:884 +0x213 github.com/dop251/goja.(*vm).handleThrow(0xc000c9c480, {0x1976e80, 0x2d12a50}) github.com/dop251/[email protected]/vm.go:788 +0x497 github.com/dop251/goja.(*vm).runTryInner.func1() github.com/dop251/[email protected]/vm.go:830 +0x45 panic({0x1976e80, 0x2d12a50}) runtime/panic.go:884 +0x213 go.k6.io/k6/lib/netext/grpcext.(*reflectionClient).resolveServiceFileDescriptors(0x7ffadc4d8f70?, {0x7ffadc4d8f70, 0xc0031b2330}, 0x0?) go.k6.io/[email protected]/lib/netext/grpcext/reflect.go:71 +0x3d5 go.k6.io/k6/lib/netext/grpcext.(*reflectionClient).Reflect(0xc0034d47d0, {0x1f551c0?, 0xc000cfccf0?}) go.k6.io/[email protected]/lib/netext/grpcext/reflect.go:37 +0x1d9 go.k6.io/k6/lib/netext/grpcext.(*Conn).Reflect(0x1f551c0?, {0x1f551c0, 0xc000cfccf0}) go.k6.io/[email protected]/lib/netext/grpcext/conn.go:86 +0x5c go.k6.io/k6/js/modules/k6/grpc.(*Client).Connect(0xc000cf3500, {0xc002198300, 0x3a}, 0x4798d9?) go.k6.io/[email protected]/js/modules/k6/grpc/client.go:161 +0x914 reflect.Value.call({0x1ab13a0?, 0xc000cf3500?, 0x7ffadc249b78?}, {0x1bd2227, 0x4}, {0xc000cfcc00, 0x2, 0xc002702340?}) reflect/value.go:586 +0xb0b reflect.Value.Call({0x1ab13a0?, 0xc000cf3500?, 0xc000cfcba0?}, {0xc000cfcc00?, 0xc0013943d0?, 0x0?}) reflect/value.go:370 +0xbc github.com/dop251/goja.(*Runtime).wrapReflectFunc.func1({{0x1f6db50, 0xc000cf3530}, {0xc000ce64e0, 0x2, 0x6}}) github.com/dop251/[email protected]/runtime.go:2056 +0x3dc github.com/dop251/goja.(*nativeFuncObject).vmCall(0xc000ce63c0, 0xc000c9c480, 0x2) github.com/dop251/[email protected]/func.go:559 +0x1af github.com/dop251/goja.call.exec(0x7?, 0xc000c9c480) github.com/dop251/[email protected]/vm.go:3366 +0x6a github.com/dop251/goja.(*vm).run(0xc000c9c480) github.com/dop251/[email protected]/vm.go:582 +0x62 github.com/dop251/goja.(*vm).runTryInner(0xc000c9c480?) github.com/dop251/[email protected]/vm.go:834 +0x70 github.com/dop251/goja.(*baseJsFuncObject).__call(0xc000ce50a0, {0xc000cdf9c0?, 0x1, 0x0?}, {0x0?, 0x0}, {0x0?, 0x0?}) github.com/dop251/[email protected]/func.go:426 +0x705 github.com/dop251/goja.(*baseJsFuncObject)._call(...) github.com/dop251/[email protected]/func.go:442 github.com/dop251/goja.(*arrowFuncObject).Call(0x425cba?, {{0x1f6e4d0, 0x2fa0ec0}, {0xc000cdf9c0, 0x1, 0x1}}) github.com/dop251/[email protected]/func.go:386 +0x57 github.com/dop251/goja.AssertFunction.func1.1() github.com/dop251/[email protected]/runtime.go:2476 +0x77 github.com/dop251/goja.(*vm).try(0xc000c9c480, 0xc000cb76f0) github.com/dop251/[email protected]/vm.go:811 +0x244 github.com/dop251/goja.(*Runtime).runWrapped(0xc000100c00, 0x7ffb039f5d28?) github.com/dop251/[email protected]/runtime.go:2520 +0x7c github.com/dop251/goja.AssertFunction.func1({0x1f6e4d0?, 0x2fa0ec0?}, {0xc000cdf9c0?, 0x1?, 0x1?}) github.com/dop251/[email protected]/runtime.go:2475 +0x92 go.k6.io/k6/js.(*VU).runFn.func2.1() go.k6.io/[email protected]/js/runner.go:826 +0x44 go.k6.io/k6/js/eventloop.(*EventLoop).Start(0xc000c90780, 0xc000cfca20) go.k6.io/[email protected]/js/eventloop/eventloop.go:177 +0x1bd go.k6.io/k6/js.(*VU).runFn.func2() go.k6.io/[email protected]/js/runner.go:825 +0xea go.k6.io/k6/js/common.RunWithPanicCatching({0x1f73140?, 0xc000463700?}, 0x41eb47?, 0x30?) go.k6.io/[email protected]/js/common/util.go:86 +0x87 go.k6.io/k6/js.(*VU).runFn(0xc000cf6b40, {0x1f55150, 0xc000c91c20}, 0x0?, 0xc0025fc978, 0xc000cdf9b0, {0xc000cdf9c0, 0x1, 0x1}) go.k6.io/[email protected]/js/runner.go:824 +0x28a go.k6.io/k6/js.(*ActiveVU).RunOnce(0xc0009e2e80) go.k6.io/[email protected]/js/runner.go:769 +0x3ef go.k6.io/k6/lib/executor.getIterationRunner.func1({0x1f551f8, 0xc000cfc870}, {0x1f47080?, 0xc0009e2e80?}) go.k6.io/[email protected]/lib/executor/helpers.go:81 +0x64 go.k6.io/k6/lib/executor.SharedIterations.Run.func6({0x1f4ef20, 0xc000cf6b40}) go.k6.io/[email protected]/lib/executor/shared_iterations.go:259 +0x366 created by go.k6.io/k6/lib/executor.SharedIterations.Run go.k6.io/[email protected]/lib/executor/shared_iterations.go:271 +0xbde
The text was updated successfully, but these errors were encountered:
I am currently writing a PR to fix this
Sorry, something went wrong.
mstoykov
Successfully merging a pull request may close this issue.
Brief summary
If the proto files used in a GRPC omits the package specifier and the k6 GRPC client uses reflection, it will result in a error
ERRO[0002] panic: runtime error: invalid memory address or nil pointer dereference
The package specifier is optional as per the proto spec so the reflection should not result in an error
k6 version
0.45
OS
All
Docker version and image (if applicable)
No response
Steps to reproduce the problem
Expected behaviour
No Error
Actual behaviour
Error produced
The text was updated successfully, but these errors were encountered: