Interesting, now I comment out s.Iterator.Execute call, and replace with outChan.Send(ctx, inVal), workflow timeout. From debugger I can see outChan.Send does not change outChan’s buffer size. From test output I see various go routine errors.
goroutine 83 [running]:
testing.(*M).startAlarm.func1()
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1700 +0xe5
created by time.goFunc
-usr-local-Cellar-go-1.16.3-libexec-src-time-sleep.go:180 +0x45
goroutine 1 [chan receive]:
testing.(*T).Run(0xc000102d80, 0x1b6b573, 0x11, 0x1bacda8, 0x10945c6)
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1239 +0x2da
testing.runTests.func1(0xc000102c00)
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1511 +0x78
testing.tRunner(0xc000102c00, 0xc0003b3de0)
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1193 +0xef
testing.runTests(0xc00032a8a0, 0x21eed70, 0x1, 0x1, 0xc015b34ce2237c98, 0x6fc544772, 0x2208000, 0x1b683de)
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1509 +0x2fe
testing.(*M).Run(0xc00018c480, 0x0)
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1417 +0x1eb
main.main()
_testmain.go:43 +0x138
goroutine 20 [select]:
google.golang.org-grpc-internal-transport.(*Stream).waitOnHeader(0xc000624300)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-transport.go:321 +0x99
google.golang.org-grpc-internal-transport.(*Stream).RecvCompress(…)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-transport.go:336
google.golang.org-grpc.(*csAttempt).recvMsg(0xc00018de80, 0x1b27240, 0xc000732640, 0x0, 0x0, 0x0)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-stream.go:915 +0x731
google.golang.org-grpc.(*clientStream).RecvMsg.func1(0xc00018de80, 0xc0006320d0, 0xcf)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-stream.go:780 +0x46
google.golang.org-grpc.(*clientStream).withRetry(0xc00062ca20, 0xc000194ff8, 0xc000194fc8, 0xc00071e1d8, 0x2236b00)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-stream.go:638 +0x9f
google.golang.org-grpc.(*clientStream).RecvMsg(0xc00062ca20, 0x1b27240, 0xc000732640, 0x0, 0x0)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-stream.go:779 +0x105
google.golang.org-grpc.invoke(0x1c8a468, 0xc00072ad20, 0x1b9e0b2, 0x4c, 0x1b33c00, 0xc0000a2910, 0x1b27240, 0xc000732640, 0xc0003cf180, 0x0, …)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-call.go:73 +0x142
reflect.Value.call(0xc0003f4ae0, 0xc00012eef8, 0x13, 0x1b5feda, 0x4, 0xc000080e30, 0x1, 0x1, 0xc000080cf8, 0x100d50a, …)
-usr-local-Cellar-go-1.16.3-libexec-src-reflect-value.go:476 +0x8e7
reflect.Value.Call(0xc0003f4ae0, 0xc00012eef8, 0x13, 0xc000080e30, 0x1, 0x1, 0x1df9461, 0x3a, 0x438)
-usr-local-Cellar-go-1.16.3-libexec-src-reflect-value.go:337 +0xb9
github.com-stretchr-testify-suite.Run.func1(0xc000103080)
-Users-bgao-go-pkg-mod-github.com-stretchr-testify@v1.6.1-suite-suite.go:158 +0x379
testing.tRunner(0xc000103080, 0xc000164bd0)
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1193 +0xef
created by testing.(*T).Run
-usr-local-Cellar-go-1.16.3-libexec-src-testing-testing.go:1238 +0x2b3
goroutine 34 [IO wait]:
internal-poll.runtime_pollWait(0x24f4660, 0x72, 0xffffffffffffffff)
-usr-local-Cellar-go-1.16.3-libexec-src-runtime-netpoll.go:222 +0x55
internal-poll.(*pollDesc).wait(0xc0003e3c98, 0x72, 0x8000, 0x8000, 0xffffffffffffffff)
-usr-local-Cellar-go-1.16.3-libexec-src-internal-poll-fd_poll_runtime.go:87 +0x45
internal-poll.(*pollDesc).waitRead(…)
-usr-local-Cellar-go-1.16.3-libexec-src-internal-poll-fd_poll_runtime.go:92
internal-poll.(*FD).Read(0xc0003e3c80, 0xc00048a000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
-usr-local-Cellar-go-1.16.3-libexec-src-internal-poll-fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc0003e3c80, 0xc00048a000, 0x8000, 0x8000, 0x16ad4de, 0x800000601, 0x0)
-usr-local-Cellar-go-1.16.3-libexec-src-net-fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000486000, 0xc00048a000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
-usr-local-Cellar-go-1.16.3-libexec-src-net-net.go:183 +0x91
bufio.(*Reader).Read(0xc000482060, 0xc0004a4038, 0x9, 0x9, 0x14, 0x24373c8, 0xc0000b9de0)
-usr-local-Cellar-go-1.16.3-libexec-src-bufio-bufio.go:227 +0x222
io.ReadAtLeast(0x1c6ed20, 0xc000482060, 0xc0004a4038, 0x9, 0x9, 0x9, 0x18, 0xc000882cd8, 0xc000a90000)
-usr-local-Cellar-go-1.16.3-libexec-src-io-io.go:328 +0x87
io.ReadFull(…)
-usr-local-Cellar-go-1.16.3-libexec-src-io-io.go:347
golang.org-x-net-http2.readFrameHeader(0xc0004a4038, 0x9, 0x9, 0x1c6ed20, 0xc000482060, 0x0, 0xc000000000, 0xc000882c01, 0xc0000b9e60)
-Users-bgao-go-pkg-mod-golang.org-x-net@v0.0.0-20201224014010-6772e930b67b-http2-frame.go:237 +0x89
golang.org-x-net-http2.(*Framer).ReadFrame(0xc0004a4000, 0xc0008980f0, 0xc0008980f0, 0x0, 0x0)
-Users-bgao-go-pkg-mod-golang.org-x-net@v0.0.0-20201224014010-6772e930b67b-http2-frame.go:492 +0xa5
google.golang.org-grpc-internal-transport.(*http2Client).reader(0xc0004ac000)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-http2_client.go:1330 +0x185
created by google.golang.org-grpc-internal-transport.newHTTP2Client
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-http2_client.go:345 +0x1011
goroutine 35 [select]:
google.golang.org-grpc-internal-transport.(*controlBuffer).get(0xc0004a2050, 0x1, 0x0, 0x0, 0x0, 0x0)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-controlbuf.go:395 +0xff
google.golang.org-grpc-internal-transport.(*loopyWriter).run(0xc000482120, 0x0, 0x0)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-controlbuf.go:515 +0x1dd
google.golang.org-grpc-internal-transport.newHTTP2Client.func3(0xc0004ac000)
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-http2_client.go:391 +0x7b
created by google.golang.org-grpc-internal-transport.newHTTP2Client
-Users-bgao-go-pkg-mod-google.golang.org-grpc@v1.36.1-internal-transport-http2_client.go:389 +0x11e7
exit status 2