Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

wizer.initialize can't read file even if --allow-wasi --dir . specified?

Abierto
#24 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
rust, wasm
Área
cli, devtools

Línea de trabajo

Reproduce el fallo usando main.go, main.wasm, test.txt y el comando wizer con --allow-wasi --dir ., y compáralo con la ejecución exitosa de wasmtime --dir .. Rastrea cómo wizer gestiona el preopen de --dir durante el punto de entrada wizer.initialize; se considera terminado cuando la función de inicialización puede leer test.txt y producir out.wasm sin el error errno 76.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Given the program

package main
import  "os"
var theText string
//go:export wizer.initialize
func WizerInitialize() {
        buf, err := os.ReadFile("test.txt")
        if err != nil {
                println("error: Cannot read test.txt", err.Error())
        }
        theText = string(buf)
}
func main() {
        if theText == "" {
                WizerInitialize()
        }
        println("theText", theText)
}

This succeeds, and outputs foobar as expected:

tinygo build -target=wasi -scheduler=none -wasm-abi=generic -o main.wasm main.go
echo "foobar" > test.txt
wasmtime --dir . main.wasm

but this

wizer --allow-wasi --dir . -o out.wasm < main.wasm

fails with

error: Cannot read test.txt open test.txt: errno 76

Setting RUST_LOG=debug shows that it is at least preopening the directory:

[2021-07-20T16:12:44Z DEBUG wizer] Validating input Wasm
[2021-07-20T16:12:44Z DEBUG wizer] Preparing input Wasm
[2021-07-20T16:12:44Z DEBUG wasmtime_cache::worker] Cache worker thread started.
[2021-07-20T16:12:44Z DEBUG wasmtime_cache::worker] New nice value of worker thread: 3
[2021-07-20T16:12:44Z DEBUG wizer] Validating the exported initialization function
[2021-07-20T16:12:44Z DEBUG wizer] Calling the initialization function
[2021-07-20T16:12:44Z DEBUG wizer] Preopening directory: .
[2021-07-20T16:12:44Z DEBUG wizer] Creating dummy imports
error: Cannot read test.txt open test.txt: errno 76

Passing a bad directory to --dir does abort, so it is at least opening the directory.

This is on mac, so I have not gone through the agony of using dtruss to see if it is actually trying to open a file.

Lenguaje dominante
Rust
Estrellas
1.1k
Forks
64
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de bytecodealliance/wizer

Todos los issues de bytecodealliance/wizer

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.