microsoft / microsoft/go

Test failure: TestCallbackCallersSEH gets incomplete trace on Windows CI with MinGW 12.2.0-rt_v10-rev2

Open
#1,093 4 comments 0 reactions 1 assignee View on GitHub

@qmuntal is already working on this.

Since Jan 11, 2024.

Test
Dominant language
Go
Stars
431
Forks
44
Avg merge
21h 18m
Merged PRs (30d)
30

Description

https://dev.azure.com/dnceng-public/public/_build/results?buildId=501610&view=results

--- FAIL: TestCallbackCallersSEH (0.00s)
    callback_windows.go:86: got 4
2023/12/15 23:30:18 Failed: exit status 1
    callback_windows.go:93: 0 _cgo_a35112bc76e5_Cfunc_backtrace
    callback_windows.go:93: 1 runtime.asmcgocall_landingpad
    callback_windows.go:93: 2 runtime.asmcgocall
    callback_windows.go:93: 3 runtime.cgocall
    callback_windows.go:109: incorrect backtrace:
        want:	[test._Cfunc_backtrace test.testCallbackCallersSEH.func1.1 test.testCallbackCallersSEH.func1 test.goCallback test._Cfunc_callback test.nestedCall.func1 test.nestedCall test.testCallbackCallersSEH test.TestCallbackCallersSEH]
        got:	[]
FAIL
scatter = 00000000005C24C0
sqrt is: 0
hello from C
FAIL	cmd/cgo/internal/test	0.930s
FAIL

(I added extra logging to figure out what was being filtered down to nothing.)

This is a run of https://github.com/microsoft/go/tree/0f3f286654f58ead223d9cb04c828cf4761d2456

Originally spotted in an upstream sync PR.

Using https://github.com/microsoft/go-infra/pull/95, this runs the test under the same MinGW:

getmingw run -source nixman -version 12.2.0-rt_v10-rev2 -arch x86_64 -threading posix -exception seh -runtime ucrt -- bin\go test cmd/cgo/internal/test -run CallersSEH -count 1 -v
  • No repro locally (Windows 11 22H2)
  • No repro on my Windows 2019 VM with gotip or 0f3f286654f58ead223d9cb04c828cf4761d2456
  • I don't have a Windows 2022 VM set up yet to try it there
    • These VMs aren't an exact match of what we get in CI.

Updating CI from 12.2.0-rt_v10-rev2 to 13.2.0-rt_v11-rev0 makes this test pass.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.