I1112 14:40:12.719555 1 log.go:172] http: panic serving 10.0.2.10:46862: runtime error: slice bounds out of range
goroutine 134 [running]:
net/http.(*conn).serve.func1(0xc000262820)
/usr/local/go/src/net/http/server.go:1769 +0x139
panic(0x1318ca0, 0x2309ea0)
/usr/local/go/src/runtime/panic.go:522 +0x1b5
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.typeUnmarshaler(0x16e6fe0, 0x12ab8c0, 0x0, 0x0, 0x0)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:480 +0x2973
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.makeUnmarshalMap(0xc0000f7a40, 0x15)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:1934 +0x3c3
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.fieldUnmarshaler(0xc0000f7a40, 0x149ca4e)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:464 +0x51
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.(*unmarshalInfo).computeUnmarshalInfo(0xc00017e6e0)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:356 +0x58f
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.(*unmarshalInfo).unmarshal(0xc00017e6e0, 0xc0003d6b00, 0xc00047f506, 0x325, 0x327, 0x13e4d80, 0xc0007302d0)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:138 +0xe2e
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.makeUnmarshalMessagePtr.func1(0xc00047f506, 0x327, 0x329, 0xc000730ab0, 0x2, 0x0, 0x0, 0xc000149680, 0x198, 0x22c8640)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:1826 +0x135
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.(*unmarshalInfo).unmarshal(0xc00017e640, 0xc000730ab0, 0xc00047f503, 0x32a, 0x32a, 0xc0004fcea8, 0x10b2294)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:175 +0x7ae
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.makeUnmarshalMessagePtr.func1(0xc00047f503, 0x32a, 0x32c, 0xc000730960, 0x2, 0xc0004fcf68, 0x4702ca, 0xc000738060, 0xc0003d2c00, 0xc00073c840)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:1826 +0x135
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.(*unmarshalInfo).unmarshal(0xc00017e5a0, 0xc000730960, 0xc00047f500, 0x32d, 0x32d, 0x40a30c, 0xc000032000)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:175 +0x7ae
github.com/repo/proj/vendor/github.com/gogo/protobuf/proto.(*InternalMessageInfo).Unmarshal(0x2320540, 0x169bb00, 0xc000730960, 0xc00047f500, 0x32d, 0x32d, 0x470601, 0x7f12f500bbe0)
/go/src/github.com/repo/proj/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go:63 +0x68
github.com/repo/proj/pkg/proxy/api/v1.(*GetMatrixStatusResponse).XXX_Unmarshal(0xc000730960, 0xc00047f500, 0x32d, 0x32d, 0xc000730960, 0xc000730301)
/go/src/github.com/repo/proj/pkg/proxy/api/v1/api.pb.go:458 +0x61
github.com/repo/proj/vendor/github.com/golang/protobuf/proto.(*Buffer).Unmarshal(0xc000730308, 0x169bb40, 0xc000730960, 0x0, 0x0)
/go/src/github.com/repo/proj/vendor/github.com/golang/protobuf/proto/decode.go:399 +0xa3
github.com/repo/proj/vendor/google.golang.org/grpc/encoding/proto.codec.Unmarshal(0xc00047f500, 0x32d, 0x32d, 0x13e4e80, 0xc000730960, 0xc0004fd268, 0x4dcb5c)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/encoding/proto/proto.go:93 +0x12f
github.com/repo/proj/vendor/google.golang.org/grpc.recv(0xc000732680, 0x7f12f4f76b78, 0x2340588, 0xc0003d6900, 0x0, 0x0, 0x13e4e80, 0xc000730960, 0x400000, 0x0, ...)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/rpc_util.go:688 +0x10f
github.com/repo/proj/vendor/google.golang.org/grpc.(*csAttempt).recvMsg(0xc00073e480, 0x13e4e80, 0xc000730960, 0x0, 0x0, 0x0)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/stream.go:885 +0xed
github.com/repo/proj/vendor/google.golang.org/grpc.(*clientStream).RecvMsg.func1(0xc00073e480, 0xc00047f180, 0x7)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/stream.go:736 +0x46
github.com/repo/proj/vendor/google.golang.org/grpc.(*clientStream).withRetry(0xc000149560, 0xc0000d9518, 0xc0000d9508, 0xc00047f180, 0xc0006d2f70)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/stream.go:594 +0x7c
github.com/repo/proj/vendor/google.golang.org/grpc.(*clientStream).RecvMsg(0xc000149560, 0x13e4e80, 0xc000730960, 0x0, 0x0)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/stream.go:735 +0x100
github.com/repo/proj/vendor/google.golang.org/grpc.invoke(0x16b3b40, 0xc000730900, 0x14ee3f0, 0x49, 0x13e4d80, 0xc000730930, 0x13e4e80, 0xc000730960, 0xc000091180, 0xc000732560, ...)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/call.go:73 +0x141
github.com/repo/proj/vendor/google.golang.org/grpc.(*ClientConn).Invoke(0xc000091180, 0x16b3b40, 0xc000730900, 0x14ee3f0, 0x49, 0x13e4d80, 0xc000730930, 0x13e4e80, 0xc000730960, 0xc000732560, ...)
/go/src/github.com/repo/proj/vendor/google.golang.org/grpc/call.go:37 +0x1b4
github.com/repo/proj/pkg/proxy/api/v1.(*matrixServiceClient).GetMatrixStatus(0xc0000fe020, 0x16b3b40, 0xc000730900, 0xc000730930, 0xc000732560, 0x2, 0x2, 0x0, 0x16b3a80, 0xc000350840)
/go/src/github.com/repo/proj/pkg/proxy/api/v1/api.pb.go:1447 +0xd2
github.com/repo/proj/pkg/proxy/api/v1.request_MatrixService_GetMatrixStatus_0(0x16b3b40, 0xc000730900, 0x16b9000, 0x230dbc0, 0x16c98a0, 0xc0000fe020, 0xc0003d6800, 0xc000730870, 0xc00075e011, 0x5, ...)
/go/src/github.com/repo/proj/pkg/proxy/api/v1/api.pb.gw.go:250 +0x164
github.com/repo/proj/pkg/proxy/api/v1.RegisterMatrixServiceHandlerClient.func6(0x16aa700, 0xc00014e0e0, 0xc0003d6800, 0xc000730870)
/go/src/github.com/repo/proj/pkg/proxy/api/v1/api.pb.gw.go:727 +0x1ca
github.com/repo/proj/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime.(*ServeMux).ServeHTTP(0xc000338310, 0x16aa700, 0xc00014e0e0, 0xc0003d6800)
/go/src/github.com/repo/proj/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/mux.go:243 +0xbea
net/http.serverHandler.ServeHTTP(0xc000330680, 0x16aa700, 0xc00014e0e0, 0xc0003d6800)
/usr/local/go/src/net/http/server.go:2774 +0xa8
net/http.(*conn).serve(0xc000262820, 0x16b3a80, 0xc000350680)
/usr/local/go/src/net/http/server.go:1878 +0x851
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2884 +0x2f4
I try to downgrade proto version from 3 to 2, to use proto-gen-go instead of proto-gen-gogo, but it neither works.
Here is a part of my custom proto file. I've just used ObjectMeta
type in k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto
:
syntax = "proto3";
package api.v1;
import "google/api/annotations.proto";
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
service {
rpc GetMatrixStatus(GetMatrixStatusRequest)
returns (GetMatrixStatusResponse) {
option (google.api.http) = {
get: "/v1/matrices/{name}/status"
response_body: "status"
};
}
}
message GetMatrixStatusRequest {
string name = 1;
}
message GetMatrixStatusResponse {
MatrixStatus status = 1;
}
message MatrixStatus {
k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
MatrixStatusDetail status = 2;
}
message ObjectMeta {
string name = 1;
string namespace = 2;
string uid = 3;
map<string, string> labels = 4;
map<string, string> annotations = 5;
}
message MatrixStatus {
ObjectMeta metadata = 1;
MatrixStatusDetail status = 2;
}