wasm-opt crashes with segmentation fault on big project
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
レポートで名前が挙げられているのは wasm-opt コマンド、TinyGo 0.37.0、および release ビルドと自分でビルドした Binaryen バイナリの違いだけです。まず Linux コマンドを再現し、それらのビルド環境を比較してください。プロプライエタリな入力は利用できず、ソースファイルやテストも名前が挙げられていないため、完了には共有可能な縮小ケースを入手し、release ビルドが segfault しないようにすることが必要です。
索引モデルが issue の本文から書いたものです。
説明
Hello!
We found that wasm-opt sometimes crashes with the error `Segmentation fault (core dumped)'.
What can help with debugging:
- We use wasm-opt together with tinygo.
- The error appears on a large project, if we remove any parts from this project in order to reduce the project, the error disappears. We couldn't make a minimal example to reproduce, and our project is proprietary and I can't give it.
- The error is not reproducible on mac, valid working configuration:
% tinygo version
tinygo version 0.37.0 darwin/amd64 (using go version go1.22.12 and LLVM version 19.1.2)
% /usr/local/bin/wasm-opt --version
wasm-opt version 117
- The error is consistently reproduced on linux on different hardware, with different operating systems, different versions of wasm-opt (tested 116 and 123).
- The error is reproduced only on your builds (https://github.com/WebAssembly/binaryen/releases). When I downloaded the project and built it myself, the error did not reproduce.
Own build, does not fall:
$ rm /tmp/tinygo3733807473/main.wasmopt
$ ls /tmp/tinygo3733807473/
main main.o
$ ./build/bin/wasm-opt --version
wasm-opt version 123 (version_123)
$ ./build/bin/wasm-opt -O2 -g /tmp/tinygo3733807473/main --output /tmp/tinygo3733807473/main.wasmopt
$ ls /tmp/tinygo3733807473/
main main.o main.wasmopt
Downloaded build of the same version crashes:
$ rm /tmp/tinygo3733807473/main.wasmopt
$ ls /tmp/tinygo3733807473/
main main.o
$ /opt/binaryen-version_123/bin/wasm-opt --version
wasm-opt version 123 (version_123)
$ /opt/binaryen-version_123/bin/wasm-opt -O2 -g /tmp/tinygo3733807473/main --output /tmp/tinygo3733807473/main.wasmopt
Segmentation fault (core dumped)
Thank you. Write to issue thread if you need more information.
- 主要言語
- WebAssembly
- スター
- 8.7k
- フォーク
- 893
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 90
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
WebAssembly/binaryen のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
WebAssembly/binaryen#9135 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 半日 初心者へのやさしさ 76/100
WebAssembly/binaryen#9018 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 47/100
WebAssembly/binaryen#9233 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
WebAssembly/binaryen#9186 ·
メンテナーはふだん 1 日以内に返信
-
OptimizeInstructions: `select (memory.grow 1) (memory.grow 1) c` is folded to one operand and returns the wrong result対応中かも @tamaroning が今日担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
WebAssembly/binaryen#9181 ·
メンテナーはふだん 1 日以内に返信
WebAssembly/binaryen の issue をすべて見る
似ている issue
-
erdos-status-sync
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
google-deepmind/formal-conjectures#6920 ·
メンテナーはふだん 1 日以内に返信
-
area-web-js web-libraries
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 4 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
objectionary/eo#9317 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
rubys/roundhouse#571 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
anthropics/buffa#639 ·
メンテナーはふだん 3 日以内に返信