[ 
https://issues.apache.org/jira/browse/BEAM-3978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453128#comment-16453128
 ] 

Henning Rohde commented on BEAM-3978:
-------------------------------------

Dup of https://issues.apache.org/jira/browse/BEAM-4175

> Direct output doesn't work after GBK
> ------------------------------------
>
>                 Key: BEAM-3978
>                 URL: https://issues.apache.org/jira/browse/BEAM-3978
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-go
>            Reporter: Henning Rohde
>            Priority: Major
>
> From the dev list: 
> https://lists.apache.org/thread.html/9cbe8449e4036aca522362dbb9909a535c30479fcd8df193cb01acbd@%3Cdev.beam.apache.org%3E
> Snippet:
>         // Concept #3: Invoke the stats.Count transform on our PCollection of
>         // individual words. The Count transform returns a new PCollection of
>         // key/value pairs, where each key represents a unique word in the 
> text.
>         // The associated value is the occurrence count for that word.
>         singles := beam.ParDo(s, func(word string) (string, int) {
>                 return word, 1
>         }, words)
>         grouped := beam.GroupByKey(s, singles)
>         counted := beam.ParDo(s, func(word string, values func(*int) bool) 
> (string, int) {
>                 sum := 0
>                 for {
>                         var i int
>                         if values(&i) {
>                                 sum = sum + i
>                         } else {
>                                 break
>                         }
>                 }
>                 return word, sum
>         }, grouped)
> Produces:
> 2018/03/30 18:40:56 Failed to execute job: panic: runtime error: index out of 
> range goroutine 1 [running]:
> runtime/debug.Stack(0xc4207cd158, 0x18dd200, 0x1f9fe80)
>       /usr/local/go/src/runtime/debug/stack.go:24 +0xa7
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.callNoPanic.func1(0xc4207cdc80)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:39
>  +0x6e
> panic(0x18dd200, 0x1f9fe80)
>       /usr/local/go/src/runtime/panic.go:491 +0x283
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.Invoke(0x1f681a0, 
> 0xc4202b2d80, 0xc4200551c0, 0xc4207cd4a8, 0x0, 0x0, 0x0, 0x1471113, 
> 0x1f681a0, 0xc4202b2ba0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/fn.go:68
>  +0xb0f
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).invokeDataFn(0xc4206861c0,
>  0x1f681a0, 0xc4202b2d80, 0x0, 0x0, 0x0, 0xc4200551c0, 0xc4207cd4a8, 
> 0x19672a0, 0x1057801, ...)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:180
>  +0x21d
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).ProcessElement(0xc4206861c0,
>  0x1f681a0, 0xc4202b2d80, 0x1861d00, 0xc420979be8, 0x18610c0, 0xc420979bf8, 
> 0x0, 0x0, 0x0, ...)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:99
>  +0x1c4
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).ProcessElement(0xc4206862a0,
>  0x1f681a0, 0xc4202b2ba0, 0x1861d00, 0xc420691600, 0x0, 0x0, 0x0, 0x0, 0x0, 
> ...)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:106
>  +0x274
> github.com/apache/beam/sdks/go/pkg/beam/runners/direct.(*CoGBK).FinishBundle(0xc420055580,
>  0x1f681a0, 0xc42065cc60, 0x0, 0xc4207cd7d8)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/runners/direct/gbk.go:84
>  +0x247
> github.com/apache/beam/sdks/go/pkg/beam/runners/direct.(*Inject).FinishBundle(0xc4206722a0,
>  0x1f681a0, 0xc42065cc60, 0x115efa0, 0xc4207cd840)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/runners/direct/gbk.go:125
>  +0x48
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.MultiFinishBundle(0x1f681a0,
>  0xc42065cc60, 0xc420661030, 0x1, 0x1, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:58
>  +0x75
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).FinishBundle(0xc420686380,
>  0x1f681a0, 0xc42065cc60, 0x1487a17, 0xc420054e00)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:120
>  +0x13c
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.MultiFinishBundle(0x1f681a0,
>  0xc42065cc60, 0xc420661040, 0x1, 0x1, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:58
>  +0x75
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).FinishBundle(0xc420686460,
>  0x1f681a0, 0xc42065cc60, 0x260ea80, 0x1fb3860)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:120
>  +0x13c
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.MultiFinishBundle(0x1f681a0,
>  0xc42065cc60, 0xc420661050, 0x1, 0x1, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:58
>  +0x75
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).FinishBundle(0xc420686540,
>  0x1f681a0, 0xc42065cc60, 0xc4207cdb30, 0x148c664)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:120
>  +0x13c
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.MultiFinishBundle(0x1f681a0,
>  0xc42065cc60, 0xc420661060, 0x1, 0x1, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:58
>  +0x75
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).FinishBundle(0xc420686620,
>  0x1f681a0, 0xc42065cc60, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:120
>  +0x13c
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.MultiFinishBundle(0x1f681a0,
>  0xc42065cc60, 0xc420661070, 0x1, 0x1, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:58
>  +0x75
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*ParDo).FinishBundle(0xc420686700,
>  0x1f681a0, 0xc42065cc60, 0xc4207cdc28, 0x102ab59)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:120
>  +0x13c
> github.com/apache/beam/sdks/go/pkg/beam/runners/direct.(*Impulse).FinishBundle(0xc42065cc30,
>  0x1f681a0, 0xc42065cc60, 0xc4207cdc40, 0xc4207cdc38)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/runners/direct/impulse.go:52
>  +0x48
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(Root).FinishBundle-fm(0x1f681a0,
>  0xc42065cc60, 0xc4207cdc80, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/plan.go:118
>  +0x43
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.callNoPanic(0x1f681a0,
>  0xc42065cc60, 0xc4207cdcd8, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:42
>  +0x76
> github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec.(*Plan).Execute(0xc420648a80,
>  0x1f681a0, 0xc42065cc60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/core/runtime/exec/plan.go:118
>  +0x49f
> github.com/apache/beam/sdks/go/pkg/beam/runners/direct.Execute(0x1f68120, 
> 0xc420012078, 0xc42000e0a0, 0x6, 0xc42063ab20)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/runners/direct/direct.go:49
>  +0x2da
> github.com/apache/beam/sdks/go/pkg/beam.Run(0x1f68120, 0xc420012078, 
> 0x19d5e25, 0x6, 0xc42000e0a0, 0xc42065c750, 0xc42065c0f0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/runner.go:50 
> +0x8d
> github.com/apache/beam/sdks/go/pkg/beam/x/beamx.Run(0x1f68120, 0xc420012078, 
> 0xc42000e0a0, 0xc, 0xc42065c3c0)
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/pkg/beam/x/beamx/run.go:42
>  +0x57
> main.main()
>       
> /Users/herohde/go/src/github.com/apache/beam/sdks/go/examples/wordcount/wordcount.go:194
>  +0x215
> The problem seems to be an indexing bug in the data Fn wrapper. Using an 
> emitter for the output after GBK makes this failure not occur.



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

Reply via email to