[ 
https://issues.apache.org/jira/browse/BEAM-11104?focusedWorklogId=757058&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-757058
 ]

ASF GitHub Bot logged work on BEAM-11104:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 14/Apr/22 16:14
            Start Date: 14/Apr/22 16:14
    Worklog Time Spent: 10m 
      Work Description: lostluck commented on code in PR #17334:
URL: https://github.com/apache/beam/pull/17334#discussion_r850600397


##########
sdks/go/pkg/beam/core/runtime/exec/fn.go:
##########
@@ -261,21 +274,34 @@ func (n *invoker) ret2(pn typex.PaneInfo, ws 
[]typex.Window, ts typex.EventTime,
 // ret3 handles processing of a trio of return values.
 func (n *invoker) ret3(pn typex.PaneInfo, ws []typex.Window, ts 
typex.EventTime, r0, r1, r2 interface{}) (*FullValue, error) {
        switch {
-       case n.outErrIdx >= 0:
-               if r2 != nil {
-                       return nil, r2.(error)
+       case n.outEtIdx >= 0:
+               if n.outErrIdx == 2 {
+                       if r2 != nil {
+                               return nil, r2.(error)
+                       }
+                       n.ret = FullValue{Windows: ws, Timestamp: 
r0.(typex.EventTime), Elm: r1, Pane: pn}
+                       return &n.ret, nil
                }
-               if n.outEtIdx < 0 {
-                       n.ret = FullValue{Windows: ws, Timestamp: ts, Elm: r0, 
Elm2: r1, Pane: pn}
+               if n.outPcIdx >= 0 {
+                       n.ret = FullValue{Windows: ws, Timestamp: 
r0.(typex.EventTime), Elm: r1, Pane: pn, Continuation: 
r2.(sdf.ProcessContinuation)}
                        return &n.ret, nil
                }
-               n.ret = FullValue{Windows: ws, Timestamp: r0.(typex.EventTime), 
Elm: r1, Pane: pn}
-               return &n.ret, nil
-       case n.outEtIdx == 0:
                n.ret = FullValue{Windows: ws, Timestamp: r0.(typex.EventTime), 
Elm: r1, Elm2: r2, Pane: pn}
                return &n.ret, nil
        default:
-               panic(fmt.Sprintf("invoker.ret3: %T, %T, and %T don't match 
permitted return values.", r0, r1, r2))
+               if n.outErrIdx == 2 {

Review Comment:
   As I said...
   > Style wise (and compiler wise) they're identical so no change should occur 
from this comment.
   
   It's also my job to tell you these sorts of things about Go, and the 
opportunity is during relevant context, even if it's not changing the code.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 757058)
    Time Spent: 11.5h  (was: 11h 20m)

> [Go SDK] DoFn Self Checkpointing
> --------------------------------
>
>                 Key: BEAM-11104
>                 URL: https://issues.apache.org/jira/browse/BEAM-11104
>             Project: Beam
>          Issue Type: Sub-task
>          Components: sdk-go
>            Reporter: Robert Burke
>            Assignee: Jack McCluskey
>            Priority: P3
>          Time Spent: 11.5h
>  Remaining Estimate: 0h
>
> Allow SplittableDoFns to self checkpoint.
> Design doc: 
> https://docs.google.com/document/d/1_JbzjY9JR07ZK5v7PcZevUfzHPsqwzfV7W6AouNpMPk/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to