apache / apache/beam

[Bug]: TestParDo timing out on OSX (arm64)

Open
#22,447 8 comments 0 reactions 0 assignees View on GitHub
bug failing test go P2
Dominant language
Java
Stars
8.7k
Forks
4.7k
Avg merge
2d 5h
Merged PRs (30d)
204

Description

### What happened?

Running the full go test suite in `sdk` with `go test ./...` fails on my mac.

Here is a minimal repro:

```
% cd sdks/go/pkg/beam/core/runtime/exec

% go test -v -run TestParDo

=== RUN TestParDo
panic: test timed out after 10m0s

goroutine 13 [running]:
testing.(*M).startAlarm.func1()
/usr/local/go/src/testing/testing.go:2029 +0x8c
created by time.goFunc
/usr/local/go/src/time/sleep.go:176 +0x3c

goroutine 1 [chan receive, 9 minutes]:
testing.(*T).Run(0x140002e81a0, {0x1025ef4b3?, 0x25907902ec08c?}, 0x10284ffa8)
/usr/local/go/src/testing/testing.go:1487 +0x314
testing.runTests.func1(0x0?)
/usr/local/go/src/testing/testing.go:1839 +0x74
testing.tRunner(0x140002e81a0, 0x140001afcb8)
/usr/local/go/src/testing/testing.go:1439 +0x110
testing.runTests(0x140001d4500?, {0x102c4cbc0, 0x2f, 0x2f}, {0x9800000000000000?, 0x1020e2ff8?, 0x102c57880?})
/usr/local/go/src/testing/testing.go:1837 +0x3f0
testing.(*M).Run(0x140001d4500)
/usr/local/go/src/testing/testing.go:1719 +0x500
main.main()
_testmain.go:173 +0x1d0

goroutine 6 [runnable]:
reflect.(*rtype).NumOut(0x10274aee0?)
/usr/local/go/src/reflect/type.go:1040 +0xb8
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.sumFn(0x8?, 0x0?, {0x1400003c408?, 0x1?, 0x14000192628?}, 0x140002e6d50, 0x140002e6e10, 0x140002e6c30)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo_test.go:41 +0x88
reflect.Value.call({0x102788ac0?, 0x1028500a8?, 0x90?}, {0x1025eaaec, 0x4}, {0x140000e0ab0, 0x6, 0x10226c224?})
/usr/local/go/src/reflect/value.go:556 +0x5e4
reflect.Value.Call({0x102788ac0?, 0x1028500a8?, 0x102fe0101?}, {0x140000e0ab0, 0x6, 0x6})
/usr/local/go/src/reflect/value.go:339 +0x98
github.com/apache/beam/sdks/v2/go/pkg/beam/core/util/reflectx.(*reflectFunc).Call(0x1400000ed80, {0x14000095620?, 0x140000b4dc8?, 0x102593e78?})
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/util/reflectx/call.go:87 +0x6c
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*invoker).initCall.func46({0x0, 0x0, 0x0, 0x0, 0x0}, {0x102c3f4c0, 0x1, 0x1}, 0x140002e6c30?)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/fn_arity.go:307 +0x68
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*invoker).Invoke(0x1400019c900, {0x10285b540?, 0x140002ea440?}, {0x0, 0x0, 0x0, 0x0, 0x0}, {0x102c3f4c0, 0x1, ...}, ...)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/fn.go:236 +0x8b0
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*ParDo).invokeProcessFn(0x140001b60f0, {0x10285b540, 0x140002ea440}, {0x0, 0x0, 0x0, 0x0, 0x0}, {0x102c3f4c0, 0x1, ...}, ...)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:357 +0x10c
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*ParDo).processSingleWindow(0x140001b60f0, 0x140001932a8)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:177 +0x74
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*ParDo).processMainInput(0x140002ea440?, 0x10285b540?)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:155 +0x5c
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*ParDo).ProcessElement(0x140001b60f0, {0x0?, 0x0?}, 0x140000e0a20, {0x0, 0x0, 0x0})
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo.go:140 +0x114
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*FixedRoot).Process(0x140002e6ae0, {0x10285b460, 0x1400003a080})
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/unit_test.go:142 +0xfc
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.callNoPanic({0x10285b460?, 0x1400003a080?}, 0x0?)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/util.go:62 +0x64
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.(*Plan).Execute(0x140001d3420, {0x10285b460, 0x1400003a080}, {0x1025ea4a6, 0x1}, {{0x0?, 0x0?}, {0x0?, 0x0?}})
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/plan.go:129 +0x2e4
github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec.TestParDo(0x140002e8340)
/Users/deleplace/git/apache/beam/sdks/go/pkg/beam/core/runtime/exec/pardo_test.go:88 +0x14d4
testing.tRunner(0x140002e8340, 0x10284ffa8)
/usr/local/go/src/testing/testing.go:1439 +0x110
created by testing.(*T).Run
/usr/local/go/src/testing/testing.go:1486 +0x300
exit status 2
FAIL github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec 600.239s
```

### Issue Priority

Priority: 1

### Issue Component

Component: sdk-go

Contributor guide

Open the contributing guide

Research direction

Start in sdks/go/pkg/beam/core/runtime/exec/pardo_test.go and reproduce the failure with go test -v -run TestParDo, then inspect the stack-trace paths in pardo.go, fn.go, and reflectx/call.go. Compare the OSX arm64 behavior with the expected test execution and run the full sdk Go suite; done means TestParDo and go test ./... complete without timing out.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, macos
Domain
backend, operating-systems, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.