如何解决与此错误消息的冲突?

时间:2020-04-16 13:13:23

标签: go kubernetes protocol-buffers proto

我已使用go mod tidy将protobuf更新为github.com//golang/protobuf@v1.4.0
我的项目使用github.com/ericchiang/k8s@v1.2.0 我生成了二进制文件,当我尝试运行它时,出现此紧急错误:

panic: mismatching message name: got k8s.io.kubernetes.pkg.watch.versioned.Event, want github.com/ericchiang.k8s.watch.versioned.Event

goroutine 1 [running]:
google.golang.org/protobuf/internal/impl.legacyLoadMessageDesc(0x1f8d6c0, 0x1b85dc0, 0x1ce794f, 0x2f, 0x0, 0x0)
        /home/andriy/go/pkg/mod/google.golang.org/protobuf@v1.21.0/internal/impl/legacy_message.go:136 +0x882
google.golang.org/protobuf/internal/impl.legacyLoadMessageInfo(0x1f8d6c0, 0x1b85dc0, 0x1ce794f, 0x2f, 0x4f7b57)
        /home/andriy/go/pkg/mod/google.golang.org/protobuf@v1.21.0/internal/impl/legacy_message.go:48 +0xbd
google.golang.org/protobuf/internal/impl.Export.LegacyMessageTypeOf(0x1f4f0a0, 0x0, 0x1ce794f, 0x2f, 0xc000399360, 0xc0000a00d0)
        /home/andriy/go/pkg/mod/google.golang.org/protobuf@v1.21.0/internal/impl/legacy_export.go:35 +0xa5
github.com/golang/protobuf/proto.RegisterType(0x1f4f0a0, 0x0, 0x1ce794f, 0x2f)
        /home/andriy/go/pkg/mod/github.com/golang/protobuf@v1.4.0-rc.4.0.20200313231945-b860323f09d0/proto/registry.go:186 +0x4d
github.com/ericchiang/k8s/watch/versioned.init.0()
        /home/andriy/go/pkg/mod/github.com/ericchiang/k8s@v1.2.0/watch/versioned/generated.pb.go:70 +0x4b

总有办法解决此问题,还是应该将protobuf降级到v1.3.5

1 个答案:

答案 0 :(得分:0)

我遇到了与您相同的问题,您可以直接转到错误路径来更改名称。用k8s.io.kubernetes.pkg.watch.versioned.Event替换generate.pb.go的init()函数中的github.com/ericchiang.k8s.watch.versioned.Event。