wizer.initialize can't read file even if --allow-wasi --dir . specified?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
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
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de bytecodealliance/wizer
-
Broken link (2021 WebAssembly Summit)Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
bytecodealliance/wizer#130 ·
-
Request for reproducible buildAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
bytecodealliance/wizer#153 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
bytecodealliance/wizer#126 ·
-
Monotonic clock offsettingAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
bytecodealliance/wizer#125 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 32/100
bytecodealliance/wizer#105 · 1 comentario ·
Todos los issues de bytecodealliance/wizer
Issues similares
-
Trash, bin or rubbish?Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 63/100
pop-os/cosmic-files#2117 ·
Los mantenedores suelen responder en 2 días
-
L: java:gradle L: java:maven L: ruby:bundler T: bug 🐞
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
dependabot/dependabot-core#16547 ·
Los mantenedores suelen responder en 1 día
-
bug status:ready-for-test
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
UniClipboard/UniClipboard#1985 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
RustCrypto/SSH#596 ·
-
area:breg rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
registrystack/registry-stack#2034 ·
Los mantenedores suelen responder en 1 día