[
https://issues.apache.org/jira/browse/BEAM-12158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17347840#comment-17347840
]
James Matthews commented on BEAM-12158:
---------------------------------------
Nope, sorry, still not fixed. I did at least get an error that's slightly more
explicit this time, though:
{code:java}
panic: proto: file "v1.proto" is already registered
previously from:
"github.com/apache/beam/sdks/go/pkg/beam/core/runtime/graphx/v1"
currently from: "github.com/apache/beam/sdks/go/pkg/beam/io/pubsubio/v1"
{code}
I think what's happening is [https://github.com/golang/protobuf/issues/1122
|https://github.com/golang/protobuf/issues/1122]- which seems like a really
egregious bug in how protobuf is handling registration. Here, I suspect (but
have not verified) it's being tripped by something related to the gen.go files
running protoc on each file individually.
If I run the wordcount binary with GOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn
(workaround from that issue), it seems to work fine.
Steps to reproduce (from an empty $GOPATH)
* mkdir -p $GOPATH/src/github.com/apache
* cd $GOPATH/src/github.com/apache
* git clone [https://github.com/apache/beam]
* GO111MODULE='off' go get ./beam/sdks/go/...
* GO111MODULE='off' go build ./beam/sdks/go/examples/wordcount
* ./wordcount
> "v1.proto" is already registered error for golang dataflow
> ----------------------------------------------------------
>
> Key: BEAM-12158
> URL: https://issues.apache.org/jira/browse/BEAM-12158
> Project: Beam
> Issue Type: Bug
> Components: sdk-go
> Reporter: Kazuki Nishiura
> Assignee: Robert Burke
> Priority: P2
> Time Spent: 2h 10m
> Remaining Estimate: 0h
>
> I tried to run wordcount example in go
> [https://beam.apache.org/get-started/quickstart-go/]
> It worked fine in dev but when I try to run it on GCP dataflow, I got
> '"v1.proto" is already registered' error and job crashes.
>
> It seems proto definition here is using very generic package name "v1" which
> I suspect is a cause of issue
> https://github.com/apache/beam/blob/v2.28.0/sdks/go/pkg/beam/io/pubsubio/v1/v1.proto
>
> Here is log in GCP
> {code:java}
> "panic: proto: file "v1.proto" is already registered "
> "See
> https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict
> "
> "goroutine 1 [running]: "
> "google.golang.org/protobuf/reflect/protoregistry.glob..func1(0x1683000,
> 0xc0005201c0, 0x164a080, 0xc0004657e0, 0xc0005201c0) "
> "
> /Users/kazuki/go/pkg/mod/google.golang.org/[email protected]/reflect/protoregistry/registry.go:54
> +0x24c "
> "google.golang.org/protobuf/reflect/protoregistry.(*Files).RegisterFile(0xc000068350,
> 0x1688e40, 0xc0005201c0, 0x0, 0x0) "
> "
> /Users/kazuki/go/pkg/mod/google.golang.org/[email protected]/reflect/protoregistry/registry.go:127
> +0xb6c "
> "google.golang.org/protobuf/internal/filedesc.Builder.Build(0x0, 0x0,
> 0xc000361e00, 0x12a, 0x200, 0x100000001, 0x0, 0x1654b00, 0xc00003c330,
> 0x1665e40, ...) "
> "
> /Users/kazuki/go/pkg/mod/google.golang.org/[email protected]/internal/filedesc/build.go:113
> +0x195 "
> "github.com/golang/protobuf/proto.RegisterFile(0x148e167, 0x8, 0x1fdc7a0,
> 0xe2, 0xe2) "
> "
> /Users/kazuki/go/pkg/mod/github.com/golang/[email protected]/proto/registry.go:48
> +0x13b "
> "github.com/apache/beam/sdks/go/pkg/beam/io/pubsubio/v1.init.1() "
> "
> /Users/kazuki/go/pkg/mod/github.com/apache/[email protected]+incompatible/sdks/go/pkg/beam/io/pubsubio/v1/v1.pb.go:115
> +0x5a "
> "2021/04/12 19:32:22 User program exited: exit status 2 "
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)