gnolang / gno

Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + Gno.land: a blockchain for timeless code and fair open-source
https://gno.land/
Other
876 stars 359 forks source link

Benchamark Test panicking for GnoVM #2711

Open sw360cab opened 3 weeks ago

sw360cab commented 3 weeks ago

Benchamark Test panicking for GnoVM

Description

There is a test a case in GnoVM package that panics and causes a failure of benchmark tests

Your environment

Steps to reproduce

go test -benchmem -bench=. -run=^$ ./gnovm/...

the benchmark tests fail

Logs

BenchmarkPreprocess-12                  panic: name mx not declared [recovered]
        panic: /:0:0: name mx not declared:
--- preprocess stack ---
stack 1: func main() { mx<VPUverse(0)> := 1000000; for i<VPUverse(0)> := 0; i<VPUverse(0)> < mx<VPUverse(0)>; i<VPUverse(0)>++ {  } }
stack 0: package(main)
------------------------

goroutine 11 [running]:
github.com/gnolang/gno/gnovm/pkg/gnolang.Preprocess.func1.1()
       gno/gnovm/pkg/gnolang/preprocess.go:414 +0x35f
panic({0x82f62a0?, 0xc00036c090?})
        /Users/sergio/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.4.darwin-amd64/src/runtime/panic.go:770 +0x132
github.com/gnolang/gno/gnovm/pkg/gnolang.(*StaticBlock).GetPathForName(0xc000020030, {0x0, 0x0}, {0xc0000140d8, 0x2})
       gno/gnovm/pkg/gnolang/nodes.go:1651 +0x594
github.com/gnolang/gno/gnovm/pkg/gnolang.fillNameExprPath({0x83f9db8, 0xc000020008}, 0xc000118870, 0x2?)
       gno/gnovm/pkg/gnolang/preprocess.go:3718 +0xc2
github.com/gnolang/gno/gnovm/pkg/gnolang.Preprocess.func1({0xc000250600, 0x2, 0x20}, 0x23, 0x0, {0x83ef0f0, 0xc000118870}, 0x3)
       gno/gnovm/pkg/gnolang/preprocess.go:937 +0x138e
github.com/gnolang/gno/gnovm/pkg/gnolang.transcribe(0xc0000519e0, {0xc000250600, 0x2, 0x20}, 0x23, 0x0, {0x83ef0f0, 0xc000118870}, 0xc0000f940f)
       gno/gnovm/pkg/gnolang/transcribe.go:737 +0x1c0d
github.com/gnolang/gno/gnovm/pkg/gnolang.transcribe(0xc0000f99e0, {0xc000250600, 0x1, 0x20}, 0x46, 0x0, {0x83ef078, 0xc0001a9440}, 0xc0000f9697)
       gno/gnovm/pkg/gnolang/transcribe.go:364 +0x6c12
github.com/gnolang/gno/gnovm/pkg/gnolang.transcribe(0xc0000f99e0, {0xc000250600, 0x0, 0x20}, 0x0, 0x0, {0x83eef88, 0xc000020008}, 0xc0000f991f)
       gno/gnovm/pkg/gnolang/transcribe.go:679 +0x840b
github.com/gnolang/gno/gnovm/pkg/gnolang.Transcribe({0x83eef88, 0xc000020008}, 0xc0001359e0)
       gno/gnovm/pkg/gnolang/transcribe.go:133 +0xb6
github.com/gnolang/gno/gnovm/pkg/gnolang.Preprocess({0x0, 0x0}, {0x83f9958, 0xc000000308}, {0x83eef88, 0xc000020008?})
       gno/gnovm/pkg/gnolang/preprocess.go:388 +0x286
github.com/gnolang/gno/gnovm/pkg/gnolang.BenchmarkPreprocess(0xc0001dc788)
       gno/gnovm/pkg/gnolang/gno_test.go:366 +0x4bc
testing.(*B).runN(0xc0001dc788, 0x1)
        /Users/sergio/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.4.darwin-amd64/src/testing/benchmark.go:193 +0xf8
testing.(*B).run1.func1()
        /Users/sergio/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.4.darwin-amd64/src/testing/benchmark.go:215 +0x4e
created by testing.(*B).run1 in goroutine 1
        /Users/sergio/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.4.darwin-amd64/src/testing/benchmark.go:208 +0x90
exit status 2
FAIL    github.com/gnolang/gno/gnovm/pkg/gnolang        6.366s
sw360cab commented 3 weeks ago

cc @thehowl