[ 
https://issues.apache.org/jira/browse/BEAM-5350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tomas Roos updated BEAM-5350:
-----------------------------
    Description: 
I'm in the process as a external developer make sure that all examples are 
runnable on both direct and the dataflow runner as its crucial for people 
onboarding this project.

 

I've visted the projects before and some are runnable, some probably where 
previously, and some are def not runnable.

 

So I started top down today, in order to make autocomplete.go run on dataflow 
as well as the direct runner i changed the input in order to make it platform 
independent instead of pointing to a local file.The reading of the source from 
the public cloud storage went fine but it fails to run the top.Largest 
anonymous less function (ran on id: go-job-1-1536575613531078735) failed with

 

 
{code:java}
RESP: instruction_id: "-205" error: "Invalid bundle desc: decode: bad userfn: 
bad struct encoding: failed to decode data: decode: failed to find symbol 
main.main.func1: main.main.func1 not found. Use runtime.RegisterFunction in 
unit tests" register: < >
 
{code}
 

[https://github.com/apache/beam/blob/master/sdks/go/examples/complete/autocomplete/autocomplete.go#L63]

 

So in order to fix this I introduced the local func called lessFn and 
registered in the init process. This though now instead when running

 
{code:java}
 
go run autocomplete.go --project fair-app-213019 --runner dataflow 
--staging_location=gs://fair-app-213019/staging-test2 
--worker_harness_container_image=apache-docker-beam-snapshots-docker.bintray.io/beam/go:20180515
{code}
 

 

fails with

 
{code:java}
2018/09/10 13:37:10 Running autocomplete
 Unable to encode combiner for lifting: failed to encode custom coder: bad 
underlying type: bad field type: bad element: unencodable type: interface 
{}2018/09/10 13:37:10 Using running binary as worker binary: 
'/tmp/go-build157286122/b001/exe/autocomplete'
 2018/09/10 13:37:10 Staging worker binary: 
/tmp/go-build157286122/b001/exe/autocomplete{code}
 

And I know this is when invoking the top.Largest since I've removed the piece 
of code and then the job runs fine, could you please point me in the right 
direction why my local func is not encoable as a interface {} and I will of 
course happily send a PR when this is working on direct and the dataflow direct 
so I can move on to the other examples

 

(All changes can be seen here) 
[https://github.com/apache/beam/compare/master...ptomasroos:make-autocomplete-dataflowable?expand=1]

  was:
I'm in the process as a external developer make sure that all examples are 
runnable on both direct and the dataflow runner as its crucial for people 
onboarding this project.

 

I've visted the projects before and some are runnable, some probably where 
previously, and some are def not runnable.

 

So I started top down today, in order to make autocomplete.go run on dataflow 
as well as the direct runner i changed the input in order to make it platform 
independent instead of pointing to a local file.The reading of the source from 
the public cloud storage went fine but it fails to run the top.Largest 
anonymous less function (ran on id: go-job-1-1536575613531078735) failed with

 

RESP: instruction_id: "-205" error: "Invalid bundle desc: decode: bad userfn: 
bad struct encoding: failed to decode data: decode: failed to find symbol 
main.main.func1: main.main.func1 not found. Use runtime.RegisterFunction in 
unit tests" register: < >

 

So in order to fix this I introduced the local func called lessFn and 
registered in the init process. This though now instead when running

 

go run autocomplete.go --project fair-app-213019 --runner dataflow 
--staging_location=gs://fair-app-213019/staging-test2 
--worker_harness_container_image=apache-docker-beam-snapshots-docker.bintray.io/beam/go:20180515

 

fails with

 

2018/09/10 13:37:10 Running autocomplete
Unable to encode combiner for lifting: failed to encode custom coder: bad 
underlying type: bad field type: bad element: unencodable type: interface 
{}2018/09/10 13:37:10 Using running binary as worker binary: 
'/tmp/go-build157286122/b001/exe/autocomplete'
2018/09/10 13:37:10 Staging worker binary: 
/tmp/go-build157286122/b001/exe/autocomplete

 

And I know this is when invoking the top.Largest since I've removed the piece 
of code and then the job runs fine, could you please point me in the right 
direction why my local func is not encoable as a interface {} and I will of 
course happily send a PR when this is working on direct and the dataflow direct 
so I can move on to the other examples

 

 

 

(All changes can be seen here) 
[https://github.com/apache/beam/compare/master...ptomasroos:make-autocomplete-dataflowable?expand=1]

 

 

https://github.com/apache/beam/blob/master/sdks/go/examples/complete/autocomplete/autocomplete.go#L63

 

2018/09/10 13:37:10 Running autocomplete
Unable to encode combiner for lifting: failed to encode custom coder: bad 
underlying type: bad field type: bad element: unencodable type: interface 
{}2018/09/10 13:37:10 Using running binary as worker binary: 
'/tmp/go-build157286122/b001/exe/autocomplete'
2018/09/10 13:37:10 Staging worker binary: 
/tmp/go-build157286122/b001/exe/autocomplete


> Running autocomplete.go on dataflow fails
> -----------------------------------------
>
>                 Key: BEAM-5350
>                 URL: https://issues.apache.org/jira/browse/BEAM-5350
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-go
>    Affects Versions: Not applicable
>            Reporter: Tomas Roos
>            Assignee: Henning Rohde
>            Priority: Major
>
> I'm in the process as a external developer make sure that all examples are 
> runnable on both direct and the dataflow runner as its crucial for people 
> onboarding this project.
>  
> I've visted the projects before and some are runnable, some probably where 
> previously, and some are def not runnable.
>  
> So I started top down today, in order to make autocomplete.go run on dataflow 
> as well as the direct runner i changed the input in order to make it platform 
> independent instead of pointing to a local file.The reading of the source 
> from the public cloud storage went fine but it fails to run the top.Largest 
> anonymous less function (ran on id: go-job-1-1536575613531078735) failed with
>  
>  
> {code:java}
> RESP: instruction_id: "-205" error: "Invalid bundle desc: decode: bad userfn: 
> bad struct encoding: failed to decode data: decode: failed to find symbol 
> main.main.func1: main.main.func1 not found. Use runtime.RegisterFunction in 
> unit tests" register: < >
>  
> {code}
>  
> [https://github.com/apache/beam/blob/master/sdks/go/examples/complete/autocomplete/autocomplete.go#L63]
>  
> So in order to fix this I introduced the local func called lessFn and 
> registered in the init process. This though now instead when running
>  
> {code:java}
>  
> go run autocomplete.go --project fair-app-213019 --runner dataflow 
> --staging_location=gs://fair-app-213019/staging-test2 
> --worker_harness_container_image=apache-docker-beam-snapshots-docker.bintray.io/beam/go:20180515
> {code}
>  
>  
> fails with
>  
> {code:java}
> 2018/09/10 13:37:10 Running autocomplete
>  Unable to encode combiner for lifting: failed to encode custom coder: bad 
> underlying type: bad field type: bad element: unencodable type: interface 
> {}2018/09/10 13:37:10 Using running binary as worker binary: 
> '/tmp/go-build157286122/b001/exe/autocomplete'
>  2018/09/10 13:37:10 Staging worker binary: 
> /tmp/go-build157286122/b001/exe/autocomplete{code}
>  
> And I know this is when invoking the top.Largest since I've removed the piece 
> of code and then the job runs fine, could you please point me in the right 
> direction why my local func is not encoable as a interface {} and I will of 
> course happily send a PR when this is working on direct and the dataflow 
> direct so I can move on to the other examples
>  
> (All changes can be seen here) 
> [https://github.com/apache/beam/compare/master...ptomasroos:make-autocomplete-dataflowable?expand=1]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to