Closed
Description
#!watchflakes
default <- pkg == "math/big" && test ~ `^TestAliasing/Exp-`
panic: runtime error: slice bounds out of range [::-1] [recovered, reraised]
goroutine 247 gp=0xc00010a540 m=6 mp=0xc0001fe808 [running]:
panic({0x6c4360?, 0xc00015a0a8?})
/home/swarming/.swarming/w/ir/x/w/goroot/src/runtime/panic.go:802 +0x168 fp=0xc00026cdf0 sp=0xc00026cd40 pc=0x473988
testing.tRunner.func1.2({0x6c4360, 0xc00015a0a8})
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:1740 +0x21c fp=0xc00026cea0 sp=0xc00026cdf0 pc=0x50d77c
testing.tRunner.func1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:1743 +0x363 fp=0xc00026d030 sp=0xc00026cea0 pc=0x50d183
panic({0x6c4360?, 0xc00015a0a8?})
/home/swarming/.swarming/w/ir/x/w/goroot/src/runtime/panic.go:783 +0x132 fp=0xc00026d0e0 sp=0xc00026d030 pc=0x473952
runtime.goPanicSlice3Acap(0xffffffffffffffff, 0x8)
/home/swarming/.swarming/w/ir/x/w/goroot/src/runtime/panic.go:175 +0x74 fp=0xc00026d120 sp=0xc00026d0e0 pc=0x43acb4
math/big.(*stack).nat(0xc0003b05d0?, 0x6aa0c0?)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/nat.go:324 +0x16d fp=0xc00026d180 sp=0xc00026d120 pc=0x5f424d
math/big.nat.rem({0xc0003b05f8?, 0x6?, 0x0?}, 0xc0002a2000, {0xc0003b0608, 0x1, 0x1}, {0xc0003b6680, 0x3, 0x7})
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/natdiv.go:510 +0xf3 fp=0xc00026d250 sp=0xc00026d180 pc=0x5fbad3
math/big.nat.expNN({0xc0003b05f8?, 0x79f18232a0a0?, 0xc0003874e0?}, 0x475be9?, {0xc0003b0608, 0x1, 0x1}, {0xc0003b0618, 0x1, 0x1}, ...)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/nat.go:656 +0x40d fp=0xc00026d478 sp=0xc00026d250 pc=0x5f5fed
math/big.(*Int).exp(0xc0003ba000, 0xc0003ba020, 0x8?, 0xc0003ba060, 0x0)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/int.go:596 +0x4ab fp=0xc00026d5b0 sp=0xc00026d478 pc=0x5ed2cb
math/big.(*Int).Exp(...)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/int.go:565
math/big_test.TestAliasing.func7.1(0xc0003abee0?, 0x654d25?, 0xc0003abc00?)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/alias_test.go:205 +0x1f fp=0xc00026d5e8 sp=0xc00026d5b0 pc=0x65765f
math/big_test.checkAliasingTwoArgs(0xc00010b6c0, 0xc00026d800, 0xc0003ba000, 0xc0003ba020, 0xc0003ba060)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/alias_test.go:133 +0x58e fp=0xc00026d7d8 sp=0xc00026d5e8 pc=0x654b6e
math/big_test.TestAliasing.func7({0x0?}, {0x1?}, {0x0?}, {0x0?})
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/alias_test.go:204 +0x39 fp=0xc00026d820 sp=0xc00026d7d8 pc=0x6575f9
runtime.call32(0xc0001ea810, 0xc000117160, 0x0, 0x0, 0x0, 0x20, 0xc00026da88)
/home/swarming/.swarming/w/ir/x/w/goroot/src/runtime/asm_amd64.s:774 +0x43 fp=0xc00026d850 sp=0xc00026d820 pc=0x479cc3
runtime.reflectcall(0x6d9de0?, 0xc0003ba060?, 0x4?, 0x6e4cd2?, 0x0?, 0x12?, 0x6d9de0?)
<autogenerated>:1 +0x36 fp=0xc00026d890 sp=0xc00026d850 pc=0x47ddb6
reflect.Value.call({0x699b80?, 0xc000117160?, 0x75b1d8?}, {0x6dd8b8, 0x4}, {0xc000012060, 0x4, 0x3?})
/home/swarming/.swarming/w/ir/x/w/goroot/src/reflect/value.go:584 +0xcc6 fp=0xc00026ddd8 sp=0xc00026d890 pc=0x4cdac6
reflect.Value.Call({0x699b80?, 0xc000117160?, 0x8f12c0?}, {0xc000012060?, 0x699b80?, 0x8b1ca8?})
/home/swarming/.swarming/w/ir/x/w/goroot/src/reflect/value.go:368 +0xb9 fp=0xc00026de50 sp=0xc00026ddd8 pc=0x4ccd39
testing/quick.Check({0x699b80?, 0xc000117160?}, 0x8f12c0?)
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/quick/quick.go:290 +0x213 fp=0xc00026df10 sp=0xc00026de50 pc=0x5cd1d3
math/big_test.TestAliasing.func29(0xc000370380)
/home/swarming/.swarming/w/ir/x/w/goroot/src/math/big/alias_test.go:305 +0x151 fp=0xc00026df70 sp=0xc00026df10 pc=0x6568f1
testing.tRunner(0xc000370380, 0xc000366120)
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:1798 +0xea fp=0xc00026dfc0 sp=0xc00026df70 pc=0x50cd6a
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:1857 +0x25 fp=0xc00026dfe0 sp=0xc00026dfc0 pc=0x50de25
runtime.goexit({})
/home/swarming/.swarming/w/ir/x/w/goroot/src/runtime/asm_amd64.s:1692 +0x1 fp=0xc00026dfe8 sp=0xc00026dfe0 pc=0x47b541
created by testing.(*T).Run in goroutine 267
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:1857 +0x413
cc @rsc, given https://go.dev/cl/650638 just touched this area
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done
Milestone
Relationships
Development
No branches or pull requests
Activity
prattmic commentedon Feb 28, 2025
Marking as a release blocker just to make sure we take a look to see if this looks like a regression.
gabyhelp commentedon Feb 28, 2025
Related Issues
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
gopherbot commentedon Mar 3, 2025
Found new dashboard test flakes for:
2025-02-28 22:09 gotip-linux-amd64-clang15 go@68949049 math/big.TestAliasing/Exp-XZ (log)
— watchflakes
egonelbre commentedon Mar 5, 2025
Reproducers:
Can also be triggered via
go test -run Aliasing -quickchecks 100000
.Related issues #72085 and #72093
egonelbre commentedon Mar 5, 2025
Seems the panic was introduced in 872496d. CC @rsc
gopherbot commentedon Mar 5, 2025
Change https://go.dev/cl/655156 mentions this issue:
math/big: avoid negative slice size in nat.rem
7 remaining items