Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allocate memory fail? #387

Open
orangeC23 opened this issue Apr 11, 2023 · 0 comments
Open

Allocate memory fail? #387

orangeC23 opened this issue Apr 11, 2023 · 0 comments
Labels
🐞 bug Something isn't working

Comments

@orangeC23
Copy link

Describe the bug

The wat file:

(module 
 (type $0 (func))
 (func (export "start") (type $0))
 (memory (;0;) 65536)
)

The go file:

package main

import (
	"fmt"
	"github.com/wasmerio/wasmer-go/wasmer"
	"io/ioutil"
)

func main() {
    wasmBytes, _ := ioutil.ReadFile("./tmp.wasm")

    engine := wasmer.NewEngine()
    store := wasmer.NewStore(engine)

    // Compiles the module
    module, err := wasmer.NewModule(store, wasmBytes)

    if err != nil {
        fmt.Println("Failed to compile module:", err)
    }

	importObject := wasmer.NewImportObject()
    instance, err := wasmer.NewInstance(module, importObject)

    if err != nil {
        panic(fmt.Sprintln("Failed to instantiate the module:", err))
    }


    func1, err := instance.Exports.GetFunction("start")
    if err != nil {
	    panic(fmt.Sprintln("Failed to get the `start` function:", err))
    }

    result, err := func1()
    fmt.Println(result)
}

Steps to reproduce

wat2wasm tmp.wat
go run tmp.go

Expected behavior

Successfully allocate memory in the wat file.

Actual behavior

wasmer-go prints:

# command-line-arguments
ld: warning: -no_pie is deprecated when targeting new OS versions
ld: warning: non-standard -pagezero_size is deprecated when targeting macOS 13.0 or later
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: TryFromIntError(())', lib/vm/src/memory.rs:269:62
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fatal runtime error: failed to initiate panic, error 5
SIGABRT: abort
PC=0x7ff80454422a m=0 sigcode=0
signal arrived during cgo execution

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x409a750, 0xc000065da0)
	/usr/local/Cellar/go/1.17.5/libexec/src/runtime/cgocall.go:156 +0x5c fp=0xc000065d78 sp=0xc000065d40 pc=0x400453c
github.com/wasmerio/wasmer-go/wasmer._Cfunc_wasm_instance_new(0x600000c040c0, 0x600000008470, 0xc000012260, 0xc00001a0a8)
	_cgo_gotypes.go:1676 +0x4d fp=0xc000065da0 sp=0xc000065d78 pc=0x4091e0d
github.com/wasmerio/wasmer-go/wasmer.NewInstance.func1.1(0xc000065e78, 0xc000012260, 0xc000012230)
	/Users/zhangyixuan/go/src/github.com/wasmerio/wasmer-go/wasmer/instance.go:44 +0xd1 fp=0xc000065df8 sp=0xc000065da0 pc=0x4096491
github.com/wasmerio/wasmer-go/wasmer.NewInstance.func1()
	/Users/zhangyixuan/go/src/github.com/wasmerio/wasmer-go/wasmer/instance.go:44 +0x33 fp=0xc000065e30 sp=0xc000065df8 pc=0x4096373
github.com/wasmerio/wasmer-go/wasmer.maybeNewErrorFromWasmer(0xc000065e98)
	/Users/zhangyixuan/go/src/github.com/wasmerio/wasmer-go/wasmer/error.go:44 +0x57 fp=0xc000065e58 sp=0xc000065e30 pc=0x4092d37
github.com/wasmerio/wasmer-go/wasmer.NewInstance(0xc000070020, 0xc000010030)
	/Users/zhangyixuan/go/src/github.com/wasmerio/wasmer-go/wasmer/instance.go:39 +0xae fp=0xc000065ed0 sp=0xc000065e58 pc=0x409620e
main.main()
	/Users/zhangyixuan/WASM/myProject/EmpiricalStudyArtifact/artifact/detector/A.BackendCompilation/[A.8]Validation_error/[A.8]-1/wasmer-go-A8-1.go:23 +0x10b fp=0xc000065f80 sp=0xc000065ed0 pc=0x40995cb
runtime.main()
	/usr/local/Cellar/go/1.17.5/libexec/src/runtime/proc.go:255 +0x227 fp=0xc000065fe0 sp=0xc000065f80 pc=0x4034ae7
runtime.goexit()
	/usr/local/Cellar/go/1.17.5/libexec/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc000065fe8 sp=0xc000065fe0 pc=0x405e381

rax    0x0
rbx    0x7ff847eb9680
rcx    0x7ff7bfefd8c8
rdx    0x0
rdi    0x103
rsi    0x6
rbp    0x7ff7bfefd8f0
rsp    0x7ff7bfefd8c8
r8     0x7ff7bfefd70f
r9     0x0
r10    0x0
r11    0x246
r12    0x103
r13    0x0
r14    0x6
r15    0x16
rip    0x7ff80454422a
rflags 0x246
cs     0x7
fs     0x0
gs     0x0
exit status 2

However, if execute the command 'wasmer run tmp.wasm -i start', wasmer could successfully allocate the memory.

@orangeC23 orangeC23 added the 🐞 bug Something isn't working label Apr 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐞 bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant