Closed
Description
What version of Go are you using (go version
)?
$ go version go version go1.21rc3 linux/amd64
Does this issue reproduce with the latest release?
No
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go envGO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21rc3'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='0'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build3092309087=/tmp/go-build -gno-record-gcc-switches'
What did you do?
Make a cgo function call
What did you expect to see?
Not fail
What did you see instead?
A SEGV with trace;
SIGSEGV: segmentation violation
PC=0xfe4e62 m=16 sigcode=2
signal arrived during cgo execution
goroutine 296 [syscall]:
runtime.cgocall(0xe01780, 0xc000cf0d00)
/usr/local/go/src/runtime/cgocall.go:157 +0x4b fp=0xc000cf0cd8 sp=0xc000cf0ca0 pc=0x4a030b
github.com/NethermindEth/juno/vm._Cfunc_cairoVMExecute(0x7f2e91fd5010, 0x7f2e91fd0210, 0x1, 0x1792e, 0x64a2abb9, 0x7f2e91fd0220, 0xc000929600)
_cgo_gotypes.go:159 +0x45 fp=0xc000cf0d00 sp=0xc000cf0cd8 pc=0xd56f05
github.com/NethermindEth/juno/vm.Execute({0xc0013f0540, 0x1, 0x1}, {0x0, 0x0, 0x0}, 0x2?, 0x2?, 0xc0009291c0, {0x265de58, ...}, ...)
/app/vm/vm.go:138 +0x305 fp=0xc000cf0e90 sp=0xc000cf0d00 pc=0xd594c5
github.com/NethermindEth/juno/rpc.(*Handler).EstimateFee(0xc0001c27e0, {0xc0009323f0, 0x1, 0x7?}, {0x0, 0x0, 0xc000928fa0, 0x0})
/app/rpc/handlers.go:1106 +0x57d fp=0xc000cf1038 sp=0xc000cf0e90 pc=0xd6093d
github.com/NethermindEth/juno/rpc.(*Handler).EstimateFee-fm({0xc0009323f0?, 0x0?, 0xc0007ca0c0?}, {0x4?, 0x0?, 0xc000928fa0?, 0xc000923fb0?})
<autogenerated>:1 +0x45 fp=0xc000cf1080 sp=0xc000cf1038 pc=0xd87385
runtime.call64(0xc00092c720, 0xc0004d02b0, 0x0, 0x0, 0x0, 0x30, 0xc000cf1600)
/usr/local/go/src/runtime/asm_amd64.s:749 +0x43 fp=0xc000cf10d0 sp=0xc000cf1080 pc=0x508ae3
runtime.reflectcall(0x2414ea0?, 0xc0009208e8?, 0x8?, 0x24bc71f?, 0x0?, 0x12?, 0x2414ea0?)
<autogenerated>:1 +0x36 fp=0xc000cf1110 sp=0xc000cf10d0 pc=0x50ced6
reflect.Value.call({0x23614e0?, 0xc0004d02b0?, 0x7f2e4ab306d8?}, {0x24af04c, 0x4}, {0xc00092c420, 0x2, 0x23618a0?})
/usr/local/go/src/reflect/value.go:596 +0xce7 fp=0xc000cf1720 sp=0xc000cf1110 pc=0x55d5a7
reflect.Value.Call({0x23614e0?, 0xc0004d02b0?, 0xc00092c2a0?}, {0xc00092c420?, 0xc0004d02b0?, 0xc0003e73e0?})
/usr/local/go/src/reflect/value.go:380 +0xb9 fp=0xc000cf1798 sp=0xc000cf1720 pc=0x55c679
github.com/NethermindEth/juno/jsonrpc.(*Server).handleRequest(0xc0003e7440, 0xc000918a80)
/app/jsonrpc/server.go:291 +0x3ab fp=0xc000cf1918 sp=0xc000cf1798 pc=0xc8c1ab
github.com/NethermindEth/juno/jsonrpc.(*Server).HandleReader(0xc00029cad8?, {0x7f2e49d877a8?, 0xc000918a00?})
/app/jsonrpc/server.go:174 +0x47a fp=0xc000cf1ac0 sp=0xc000cf1918 pc=0xc8b63a
github.com/NethermindEth/juno/jsonrpc.(*HTTP).ServeHTTP(0xc0003e7650, {0x265b8d0, 0xc000966000}, 0xc0008fb000)
/app/jsonrpc/http.go:71 +0x1a5 fp=0xc000cf1b48 sp=0xc000cf1ac0 pc=0xc8a965
net/http.serverHandler.ServeHTTP({0x2658a88?}, {0x265b8d0?, 0xc000966000?}, 0x6?)
/usr/local/go/src/net/http/server.go:2938 +0x8e fp=0xc000cf1b78 sp=0xc000cf1b48 pc=0x90332e
net/http.(*conn).serve(0xc000932000, {0x265db80, 0xc0004b8a80})
/usr/local/go/src/net/http/server.go:2009 +0x5f4 fp=0xc000cf1fb8 sp=0xc000cf1b78 pc=0x8ff214
net/http.(*Server).Serve.func3()
/usr/local/go/src/net/http/server.go:3086 +0x28 fp=0xc000cf1fe0 sp=0xc000cf1fb8 pc=0x903b48
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000cf1fe8 sp=0xc000cf1fe0 pc=0x50a441
created by net/http.(*Server).Serve in goroutine 56
/usr/local/go/src/net/http/server.go:3086 +0x5cb