go: cmd/compile/internal/ssa: test TestNexting failing

What version of Go are you using (go version)?

$ go version
go version release-1_14-work.mailed linux/amd64

What operating system and processor architecture are you using?

Debian GNU/Linux rodete amd64

What did you do?

Ran test from the src directory. $ go/src> go test cmd

What did you expect to see?

Passing tests

What did you see instead?

--- FAIL: TestNexting (7.71s)
    --- FAIL: TestNexting/dlv-dbg-hist (7.71s)
panic: There was an error writing 'b main.test
', write |1: broken pipe
 [recovered]
        panic: There was an error writing 'b main.test
', write |1: broken pipe

goroutine 249 [running]:
testing.tRunner.func1.1(0xc84b60, 0xc0004aa3b0)
        /home/chuck/Code/go/src/testing/testing.go:942 +0x3d0
testing.tRunner.func1(0xc00051d680)
        /home/chuck/Code/go/src/testing/testing.go:945 +0x3f9
panic(0xc84b60, 0xc0004aa3b0)
        /home/chuck/Code/go/src/runtime/panic.go:967 +0x15d
cmd/compile/internal/ssa_test.(*ioState).writeReadExpect(0xc0002f7030, 0xcf606d, 0xc, 0xcf42fc, 0xa, 0x0, 0x0, 0xc000318000, 0x87)
        /home/chuck/Code/go/src/cmd/compile/internal/ssa/debug_test.go:861 +0x299
cmd/compile/internal/ssa_test.(*delveState).start(0xc00002a1e0)
        /home/chuck/Code/go/src/cmd/compile/internal/ssa/debug_test.go:562 +0x216
cmd/compile/internal/ssa_test.runDbgr(0xed5180, 0xc00002a1e0, 0x3e8, 0x2a)
        /home/chuck/Code/go/src/cmd/compile/internal/ssa/debug_test.go:279 +0x35
cmd/compile/internal/ssa_test.testNexting(0xc00051d680, 0xcec462, 0x4, 0xc0000974d0, 0x7, 0xcec5f0, 0x5, 0x3e8, 0x1423490, 0x0, ...)
        /home/chuck/Code/go/src/cmd/compile/internal/ssa/debug_test.go:246 +0x5dd
cmd/compile/internal/ssa_test.subTest.func1(0xc00051d680)
        /home/chuck/Code/go/src/cmd/compile/internal/ssa/debug_test.go:180 +0xae
testing.tRunner(0xc00051d680, 0xc000076690)
        /home/chuck/Code/go/src/testing/testing.go:993 +0xdc
created by testing.(*T).Run
        /home/chuck/Code/go/src/testing/testing.go:1044 +0x357
FAIL    cmd/compile/internal/ssa        133.862s

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 15 (15 by maintainers)

Most upvoted comments

How many (if any) of the builders have dlv installed?

Looking at the test body, it appears that we skip the test entirely otherwise (rather that, say, falling back to GDB). Is that intentional?

Given that Delve is a Go program, perhaps the test should instead download and build (a specific version of) the dlv binary locally if testenv.Builder() is non-empty and testing.Short() is false.

https://github.com/golang/go/blob/0efbd1015774a2d894138519f1efcf7704bb2d95/src/cmd/compile/internal/ssa/debug_test.go#L114 https://github.com/golang/go/blob/0efbd1015774a2d894138519f1efcf7704bb2d95/src/cmd/compile/internal/ssa/debug_test.go#L130-L136

Delve says it doesn’t support 386:

drchase@drchase1:~/work/go/src/cmd/compile/internal/ssa$ TERM=dumb dlv exec testdata/test-hist.dlv-dbg
unsupported architecture - only linux/amd64 and linux/arm64 are supported

and then it panics all over the place.

Still haven’t gotten gdb to work consistently-properly on either Darwin or Linux; I have a fear that success depends not just on gdb version, but also on the version of Python that is compiled into it when gdb is built.

@bcmills I added dlv to the containers that run longtests, so it should be there.

Using gdb is a recipe for flaky awfulness, different versions behave differently, it can be sensitive to your Python installation, it’s not an option on Macs anymore (as in, I have been unable to build and install it correctly despite multiple tries and many searches for how-to recipes – I follow them, I do not end up debugging code as a non-root user).