Skip to content

Fuzzing issue related to post-mvp features #3979

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

Closed
MaxGraey opened this issue Jul 10, 2021 · 14 comments
Closed

Fuzzing issue related to post-mvp features #3979

MaxGraey opened this issue Jul 10, 2021 · 14 comments

Comments

@MaxGraey
Copy link
Contributor

MaxGraey commented Jul 10, 2021

During fuzz_opt.py I got another issue with seed 2198334085169641142

Interpreter summary
[LoggingExternalInterface logging 1557176224]
 [LoggingExternalInterface logging 1557176224]
 [fuzz-exec] calling func_3
-[fuzz-exec] note result: func_3 => eqref
+     *exception*
 [fuzz-exec] calling func_4_invoker
 [fuzz-exec] calling func_6
-[fuzz-exec] note result: func_6 => eqref
+     *exception*
 [fuzz-exec] calling func_6_invoker
 [LoggingExternalInterface logging 1557176224]
 [fuzz-exec] calling func_8
-[fuzz-exec] note result: func_8 => 0
+     *exception*
 [fuzz-exec] calling func_8_invoker
 [fuzz-exec] calling func_9
-[LoggingExternalInterface logging 1557176224]
-[fuzz-exec] note result: func_9 => 0
+     *exception*
 [fuzz-exec] calling func_9_invoker
 [LoggingExternalInterface logging 1557176224]
 [fuzz-exec] calling func_10_invoker
@@ -46,11 +45,11 @@

 [fuzz-exec] calling func_13_invoker
 [fuzz-exec] calling func_14
 [fuzz-exec] calling func_15
-[fuzz-exec] note result: func_15 => externref
+     *exception*
 [fuzz-exec] calling func_15_invoker
 [LoggingExternalInterface logging -703613227]
 [fuzz-exec] calling func_16
-[fuzz-exec] note result: func_16 => -32768
+     *exception*
 [fuzz-exec] calling func_17
 [fuzz-exec] note result: func_17 => externref
 [fuzz-exec] calling func_18
@@ -60,18 +59,9 @@

 [LoggingExternalInterface logging -703613227]
 [fuzz-exec] note result: func_18 => anyref
 [fuzz-exec] calling func_19
-[LoggingExternalInterface logging -109 -1]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -18446744073709551615]
-[fuzz-exec] note result: func_19 => eqref
+     *exception*
 [fuzz-exec] calling func_21
-[LoggingExternalInterface logging 0]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging 189]
-[fuzz-exec] note result: func_21 => eqref
+     *exception*
 [fuzz-exec] calling func_21_invoker
 [LoggingExternalInterface logging 0]
 [LoggingExternalInterface logging -703613227]
@@ -115,7 +105,7 @@

 [fuzz-exec] calling func_35_invoker
 [LoggingExternalInterface logging 916524455]
 [fuzz-exec] calling func_36
-[LoggingExternalInterface logging 0 0]
+     *exception*
 [fuzz-exec] calling func_36_invoker
 [LoggingExternalInterface logging 0 0]
 [LoggingExternalInterface logging 916524405]
@@ -124,9 +114,9 @@

 [LoggingExternalInterface logging 189]
 [LoggingExternalInterface logging 189]
 [fuzz-exec] calling func_37
-[fuzz-exec] note result: func_37 => 0
+     *exception*
 [fuzz-exec] calling func_38
-[fuzz-exec] note result: func_38 => anyref
+     *exception*
 [fuzz-exec] calling func_38_invoker
 [fuzz-exec] calling func_39_invoker
 [LoggingExternalInterface logging 916524405]
@@ -137,8 +127,7 @@

 [fuzz-exec] calling func_40_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_41
-[LoggingExternalInterface logging -9223372036854796288]
-[fuzz-exec] note result: func_41 => eqref
+     *exception*
 [fuzz-exec] calling func_42_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_43_invoker
@@ -146,19 +135,15 @@

 [fuzz-exec] calling func_44_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_45
-[fuzz-exec] note result: func_45 => 0
+     *exception*
 [fuzz-exec] calling func_46
 [fuzz-exec] note result: func_46 => funcref
 [fuzz-exec] calling func_46_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_48
-[LoggingExternalInterface logging 0]
+     *exception*
 [fuzz-exec] calling func_49
-[LoggingExternalInterface logging 0 0]
-[LoggingExternalInterface logging 0 0]
-[LoggingExternalInterface logging 0 0]
-[LoggingExternalInterface logging 0 0]
-[fuzz-exec] note result: func_49 => eqref
+     *exception*
 [fuzz-exec] calling func_49_invoker
 [LoggingExternalInterface logging 0 0]
 [LoggingExternalInterface logging 0 0]
@@ -171,11 +156,11 @@

 [LoggingExternalInterface logging 916524405]
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_51
-[fuzz-exec] note result: func_51 => eqref
+     *exception*
 [fuzz-exec] calling func_53
 [fuzz-exec] note result: func_53 => 22572
 [fuzz-exec] calling func_54
-[fuzz-exec] note result: func_54 => -29
+     *exception*
 [fuzz-exec] calling func_54_invoker
 [fuzz-exec] calling func_56_invoker
 [LoggingExternalInterface logging 916524405]
@@ -192,9 +177,7 @@

 [fuzz-exec] calling func_66
 [fuzz-exec] note result: func_66 => externref
 [fuzz-exec] calling func_67
-[LoggingExternalInterface logging 1741046490]
-[LoggingExternalInterface logging 1741046490]
-[fuzz-exec] note result: func_67 => eqref
+     *exception*
 [fuzz-exec] calling func_69
 [fuzz-exec] note result: func_69 => 0
 [fuzz-exec] calling func_72_invoker
@@ -233,7 +216,7 @@

 [LoggingExternalInterface logging 1741046490]
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_87
-[fuzz-exec] note result: func_87 => funcref
+     *exception*
 [fuzz-exec] calling func_87_invoker
 [fuzz-exec] calling func_88
 [fuzz-exec] note result: func_88 => 0
@@ -253,13 +236,13 @@

 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] note result: func_94 => anyref
 [fuzz-exec] calling func_95
-[fuzz-exec] note result: func_95 => anyref
+     *exception*
 [fuzz-exec] calling func_95_invoker
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_96_invoker
-[LoggingExternalInterface logging 18446744073709551615]
+[LoggingExternalInterface logging 18446744073709552000]
 [fuzz-exec] calling func_98
-[fuzz-exec] note result: func_98 => eqref
+     *exception*
 [fuzz-exec] calling func_98_invoker
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_99
@@ -277,7 +260,7 @@

 [LoggingExternalInterface logging 0]
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_104
-[LoggingExternalInterface logging 4059587228825267051915762e247]
+[LoggingExternalInterface logging 4.059587228825267e+271]
 [fuzz-exec] note result: func_104 => anyref
 [fuzz-exec] calling func_105
 [LoggingExternalInterface logging 32768]

Also problem with numeric comparisons from different runtimes:

4059587228825267051915762e247

and

4.059587228825267e+271

which actually the same but has different string representations. However this strange due to "numbers_are_close_enough" should handle this case. Probably if len(x_lines) != len(y_lines) branch just captured execution flow earlier

@kripken
Copy link
Member

kripken commented Jul 13, 2021

I think this may be fixed by #3980 - I can't reproduce it with that.

The different numbers may be confusing - internally, we normalize them before comparing, but in the output logging it still looks different. Let me know if this isn't fixed though and I'll take another look.

@MaxGraey
Copy link
Contributor Author

MaxGraey commented Jul 13, 2021

@kripken unfortunately that PR didn't fix this issue. I got exactly the same error output. Should I add extra flags to fuzz_opt?

@kripken
Copy link
Member

kripken commented Jul 13, 2021

Odd. Can you paste the entire output from running ./scripts/fuzz_opt.py 2198334085169641142?

@MaxGraey
Copy link
Contributor Author

@kripken I pasted it in first comment. Just click on > Interpreter summary spoiler

@kripken
Copy link
Member

kripken commented Jul 13, 2021

Sorry, no, I did see that. It's not enough. I need not just the interpreter summary, but all the output of the command from my last comment. That will include the tools it runs, the logging of the choices it makes as it picks options, etc.

@MaxGraey
Copy link
Contributor Author

MaxGraey commented Jul 13, 2021

Ah, sorry! Here you are:

Full summary
warning: no output file specified, not emitting output
POSSIBLE_FEATURE_OPTS: ['--disable-threads', '--disable-mutable-globals', '--disable-nontrapping-float-to-int', '--disable-simd', '--disable-bulk-memory', '--disable-sign-ext', '--disable-exception-handling', '--disable-tail-call', '--disable-reference-types', '--disable-multivalue', '--disable-gc', '--disable-memory64', '--disable-typed-function-references']
checking a single given seed 2198334085169641142

ITERATION: 1 seed: 2198334085169641142 size: 24442 (mean: 24442.0, stddev: 0.0) speed: 20763.881188118812 iters/sec,  0.0 wasm_bytes/sec

randomized pass debug: 
randomized feature opts: --all-features --disable-threads --disable-mutable-globals --disable-simd --disable-memory64 --disable-typed-function-references
randomized settings (NaNs, OOB, legalize): False False True
initial contents: /Volumes/Archive/Projects/Github/binaryen/test/lld/main_module_table_5.wat
(initial contents not valid for features, ignoring)
randomized opts: --roundtrip --roundtrip --inlining --simplify-locals-nostructure --shrink-level=0 -fimfs=99999999

/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt input.dat -ttf -o a.wasm --denan --no-fuzz-oob --legalize-js-interface --all-features --disable-threads --disable-mutable-globals --disable-simd --disable-memory64 --disable-typed-function-references --disable-exception-handling --disable-memory64 --disable-multivalue --strip-dwarf
pre wasm size: 21122
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --all-features --disable-threads --disable-mutable-globals --disable-simd --disable-memory64 --disable-typed-function-references --disable-exception-handling --disable-memory64 --disable-multivalue --strip-dwarf --print-features
warning: no output file specified, not emitting output
['--enable-nontrapping-float-to-int', '--enable-bulk-memory', '--enable-sign-ext', '--enable-tail-call', '--enable-reference-types', '--enable-gc'] ['--strip-dwarf']
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm -o b.wasm --roundtrip --roundtrip --inlining --simplify-locals-nostructure --shrink-level=0 -fimfs=99999999 --denan --no-fuzz-oob --legalize-js-interface --enable-nontrapping-float-to-int --enable-bulk-memory --enable-sign-ext --enable-tail-call --enable-reference-types --enable-gc --strip-dwarf
warning: cannot de-nan outside of function context
post wasm size: 23367
running testcase handler: FuzzExec
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --roundtrip --roundtrip --inlining --simplify-locals-nostructure --shrink-level=0 -fimfs=99999999 --enable-nontrapping-float-to-int --enable-bulk-memory --enable-sign-ext --enable-tail-call --enable-reference-types --enable-gc --strip-dwarf --fuzz-exec
warning: no output file specified, not emitting output

running testcase handler: CompareVMs
[CompareVMs] running binaryen interpreter
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --enable-nontrapping-float-to-int --enable-bulk-memory --enable-sign-ext --enable-tail-call --enable-reference-types --enable-gc --strip-dwarf --fuzz-exec-before
warning: no output file specified, not emitting output
[CompareVMs] running d8
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --emit-js-wrapper=a.wasm.js --enable-nontrapping-float-to-int --enable-bulk-memory --enable-sign-ext --enable-tail-call --enable-reference-types --enable-gc --strip-dwarf
warning: no output file specified, not emitting output
/Volumes/Archive/Projects/Github/binaryen/third_party/v8/d8 a.wasm.js --wasm-staging --experimental-wasm-eh --experimental-wasm-compilation-hints --experimental-wasm-gc --experimental-wasm-typed-funcref --experimental-wasm-memory64 -- a.wasm
[CompareVMs] running d8_liftoff
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --emit-js-wrapper=a.wasm.js --enable-nontrapping-float-to-int --enable-bulk-memory --enable-sign-ext --enable-tail-call --enable-reference-types --enable-gc --strip-dwarf
warning: no output file specified, not emitting output
/Volumes/Archive/Projects/Github/binaryen/third_party/v8/d8 a.wasm.js --wasm-staging --experimental-wasm-eh --experimental-wasm-compilation-hints --experimental-wasm-gc --experimental-wasm-typed-funcref --experimental-wasm-memory64 --liftoff --no-wasm-tier-up -- a.wasm
[CompareVMs] running d8_turbofan
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --emit-js-wrapper=a.wasm.js --enable-nontrapping-float-to-int --enable-bulk-memory --enable-sign-ext --enable-tail-call --enable-reference-types --enable-gc --strip-dwarf
warning: no output file specified, not emitting output
/Volumes/Archive/Projects/Github/binaryen/third_party/v8/d8 a.wasm.js --wasm-staging --experimental-wasm-eh --experimental-wasm-compilation-hints --experimental-wasm-gc --experimental-wasm-typed-funcref --experimental-wasm-memory64 --no-liftoff -- a.wasm
!
-----------------------------------------
Exception:
  File "./scripts/fuzz_opt.py", line 1176, in <module>
  File "./scripts/fuzz_opt.py", line 986, in test_one
  File "./scripts/fuzz_opt.py", line 658, in handle_pair
  File "./scripts/fuzz_opt.py", line 678, in run_vms
  File "./scripts/fuzz_opt.py", line 336, in compare_between_vms
  File "./scripts/fuzz_opt.py", line 287, in compare
-----------------------------------------
!
CompareVMs between VMs: binaryen interpreter and d8 (note: different number of lines between vms) comparison error, expected to have '[fuzz-exec] calling hashMemory
[fuzz-exec] note result: hashMemory => 1557176224
[fuzz-exec] calling func
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 189]
[fuzz-exec] note result: func => -2147483648.188
[fuzz-exec] calling func_invoker
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_0_invoker
[fuzz-exec] calling func_1
[fuzz-exec] note result: func_1 => externref
[fuzz-exec] calling func_2_invoker
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] calling func_3
[fuzz-exec] note result: func_3 => eqref
[fuzz-exec] calling func_4_invoker
[fuzz-exec] calling func_6
[fuzz-exec] note result: func_6 => eqref
[fuzz-exec] calling func_6_invoker
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] calling func_8
[fuzz-exec] note result: func_8 => 0
[fuzz-exec] calling func_8_invoker
[fuzz-exec] calling func_9
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] note result: func_9 => 0
[fuzz-exec] calling func_9_invoker
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] calling func_10_invoker
[fuzz-exec] calling func_11
[fuzz-exec] note result: func_11 => externref
[fuzz-exec] calling func_12_invoker
[fuzz-exec] calling func_13
[fuzz-exec] note result: func_13 => funcref
[fuzz-exec] calling func_13_invoker
[fuzz-exec] calling func_14
[fuzz-exec] calling func_15
[fuzz-exec] note result: func_15 => externref
[fuzz-exec] calling func_15_invoker
[LoggingExternalInterface logging -703613227]
[fuzz-exec] calling func_16
[fuzz-exec] note result: func_16 => -32768
[fuzz-exec] calling func_17
[fuzz-exec] note result: func_17 => externref
[fuzz-exec] calling func_18
[LoggingExternalInterface logging -131072 -1]
[LoggingExternalInterface logging -2 2147483647]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[fuzz-exec] note result: func_18 => anyref
[fuzz-exec] calling func_19
[LoggingExternalInterface logging -109 -1]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -18446744073709551615]
[fuzz-exec] note result: func_19 => eqref
[fuzz-exec] calling func_21
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging 189]
[fuzz-exec] note result: func_21 => eqref
[fuzz-exec] calling func_21_invoker
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging 189]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_22
[LoggingExternalInterface logging 0 0]
[fuzz-exec] calling func_23
[fuzz-exec] note result: func_23 => 22572
[fuzz-exec] calling func_23_invoker
[fuzz-exec] calling func_24_invoker
[LoggingExternalInterface logging -703613227]
[fuzz-exec] calling func_25_invoker
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -2147483648.188]
[fuzz-exec] calling func_26_invoker
[fuzz-exec] calling func_27_invoker
[fuzz-exec] calling func_28
[LoggingExternalInterface logging 916524455]
[fuzz-exec] note result: func_28 => -33554432
[fuzz-exec] calling func_28_invoker
[LoggingExternalInterface logging 916524455]
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_29
[fuzz-exec] note result: func_29 => anyref
[fuzz-exec] calling func_30
[fuzz-exec] note result: func_30 => -32.42399978637695
[fuzz-exec] calling func_31_invoker
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_32_invoker
[fuzz-exec] calling func_33_invoker
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_34_invoker
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_35_invoker
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_36
[LoggingExternalInterface logging 0 0]
[fuzz-exec] calling func_36_invoker
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 189]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_37
[fuzz-exec] note result: func_37 => 0
[fuzz-exec] calling func_38
[fuzz-exec] note result: func_38 => anyref
[fuzz-exec] calling func_38_invoker
[fuzz-exec] calling func_39_invoker
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_40_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_41
[LoggingExternalInterface logging -9223372036854796288]
[fuzz-exec] note result: func_41 => eqref
[fuzz-exec] calling func_42_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_43_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_44_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_45
[fuzz-exec] note result: func_45 => 0
[fuzz-exec] calling func_46
[fuzz-exec] note result: func_46 => funcref
[fuzz-exec] calling func_46_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_48
[LoggingExternalInterface logging 0]
[fuzz-exec] calling func_49
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[fuzz-exec] note result: func_49 => eqref
[fuzz-exec] calling func_49_invoker
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_50
[fuzz-exec] note result: func_50 => funcref
[fuzz-exec] calling func_50_invoker
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_51
[fuzz-exec] note result: func_51 => eqref
[fuzz-exec] calling func_53
[fuzz-exec] note result: func_53 => 22572
[fuzz-exec] calling func_54
[fuzz-exec] note result: func_54 => -29
[fuzz-exec] calling func_54_invoker
[fuzz-exec] calling func_56_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_57
[fuzz-exec] note result: func_57 => -226668258
[fuzz-exec] calling func_59
[fuzz-exec] note result: func_59 => anyref
[fuzz-exec] calling func_59_invoker
[fuzz-exec] calling func_60
[fuzz-exec] calling func_64
[LoggingExternalInterface logging -22 0]
[LoggingExternalInterface logging 1741046490]
     *exception*
[fuzz-exec] calling func_66
[fuzz-exec] note result: func_66 => externref
[fuzz-exec] calling func_67
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] note result: func_67 => eqref
[fuzz-exec] calling func_69
[fuzz-exec] note result: func_69 => 0
[fuzz-exec] calling func_72_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_73
[fuzz-exec] note result: func_73 => 0
[fuzz-exec] calling func_74
[LoggingExternalInterface logging 0]
[fuzz-exec] note result: func_74 => anyref
[fuzz-exec] calling func_74_invoker
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_75
[fuzz-exec] note result: func_75 => funcref
[fuzz-exec] calling func_78_invoker
[fuzz-exec] calling func_79_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_80
[fuzz-exec] note result: func_80 => 0
[fuzz-exec] calling func_81
[fuzz-exec] note result: func_81 => funcref
[fuzz-exec] calling func_82
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_85_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_86
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] note result: func_86 => 32769
[fuzz-exec] calling func_86_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_87
[fuzz-exec] note result: func_87 => funcref
[fuzz-exec] calling func_87_invoker
[fuzz-exec] calling func_88
[fuzz-exec] note result: func_88 => 0
[fuzz-exec] calling func_89_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 32769 0]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_90
[LoggingExternalInterface logging 0 0]
[fuzz-exec] calling func_91
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 0 0]
[fuzz-exec] note result: func_91 => anyref
[fuzz-exec] calling func_94
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] note result: func_94 => anyref
[fuzz-exec] calling func_95
[fuzz-exec] note result: func_95 => anyref
[fuzz-exec] calling func_95_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_96_invoker
[LoggingExternalInterface logging 18446744073709551615]
[fuzz-exec] calling func_98
[fuzz-exec] note result: func_98 => eqref
[fuzz-exec] calling func_98_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_99
[fuzz-exec] note result: func_99 => externref
[fuzz-exec] calling func_99_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_102_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 227]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_103_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_104
[LoggingExternalInterface logging 4059587228825267051915762e247]
[fuzz-exec] note result: func_104 => anyref
[fuzz-exec] calling func_105
[LoggingExternalInterface logging 32768]
[fuzz-exec] note result: func_105 => -1323014807
[fuzz-exec] calling hangLimitInitializer' == '[fuzz-exec] calling hashMemory
[fuzz-exec] note result: hashMemory => 1557176224
[fuzz-exec] calling func
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 189]
[fuzz-exec] note result: func => -2147483648.188
[fuzz-exec] calling func_invoker
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_0_invoker
[fuzz-exec] calling func_1
[fuzz-exec] note result: func_1 => externref
[fuzz-exec] calling func_2_invoker
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] calling func_3
     *exception*
[fuzz-exec] calling func_4_invoker
[fuzz-exec] calling func_6
     *exception*
[fuzz-exec] calling func_6_invoker
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] calling func_8
     *exception*
[fuzz-exec] calling func_8_invoker
[fuzz-exec] calling func_9
     *exception*
[fuzz-exec] calling func_9_invoker
[LoggingExternalInterface logging 1557176224]
[fuzz-exec] calling func_10_invoker
[fuzz-exec] calling func_11
[fuzz-exec] note result: func_11 => externref
[fuzz-exec] calling func_12_invoker
[fuzz-exec] calling func_13
[fuzz-exec] note result: func_13 => funcref
[fuzz-exec] calling func_13_invoker
[fuzz-exec] calling func_14
[fuzz-exec] calling func_15
     *exception*
[fuzz-exec] calling func_15_invoker
[LoggingExternalInterface logging -703613227]
[fuzz-exec] calling func_16
     *exception*
[fuzz-exec] calling func_17
[fuzz-exec] note result: func_17 => externref
[fuzz-exec] calling func_18
[LoggingExternalInterface logging -131072 -1]
[LoggingExternalInterface logging -2 2147483647]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[fuzz-exec] note result: func_18 => anyref
[fuzz-exec] calling func_19
     *exception*
[fuzz-exec] calling func_21
     *exception*
[fuzz-exec] calling func_21_invoker
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging 189]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_22
[LoggingExternalInterface logging 0 0]
[fuzz-exec] calling func_23
[fuzz-exec] note result: func_23 => 22572
[fuzz-exec] calling func_23_invoker
[fuzz-exec] calling func_24_invoker
[LoggingExternalInterface logging -703613227]
[fuzz-exec] calling func_25_invoker
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -703613227]
[LoggingExternalInterface logging -2147483648.188]
[fuzz-exec] calling func_26_invoker
[fuzz-exec] calling func_27_invoker
[fuzz-exec] calling func_28
[LoggingExternalInterface logging 916524455]
[fuzz-exec] note result: func_28 => -33554432
[fuzz-exec] calling func_28_invoker
[LoggingExternalInterface logging 916524455]
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_29
[fuzz-exec] note result: func_29 => anyref
[fuzz-exec] calling func_30
[fuzz-exec] note result: func_30 => -32.42399978637695
[fuzz-exec] calling func_31_invoker
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_32_invoker
[fuzz-exec] calling func_33_invoker
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_34_invoker
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_35_invoker
[LoggingExternalInterface logging 916524455]
[fuzz-exec] calling func_36
     *exception*
[fuzz-exec] calling func_36_invoker
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 189]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_37
     *exception*
[fuzz-exec] calling func_38
     *exception*
[fuzz-exec] calling func_38_invoker
[fuzz-exec] calling func_39_invoker
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_40_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_41
     *exception*
[fuzz-exec] calling func_42_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_43_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_44_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_45
     *exception*
[fuzz-exec] calling func_46
[fuzz-exec] note result: func_46 => funcref
[fuzz-exec] calling func_46_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_48
     *exception*
[fuzz-exec] calling func_49
     *exception*
[fuzz-exec] calling func_49_invoker
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_50
[fuzz-exec] note result: func_50 => funcref
[fuzz-exec] calling func_50_invoker
[LoggingExternalInterface logging 916524405]
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_51
     *exception*
[fuzz-exec] calling func_53
[fuzz-exec] note result: func_53 => 22572
[fuzz-exec] calling func_54
     *exception*
[fuzz-exec] calling func_54_invoker
[fuzz-exec] calling func_56_invoker
[LoggingExternalInterface logging 916524405]
[fuzz-exec] calling func_57
[fuzz-exec] note result: func_57 => -226668258
[fuzz-exec] calling func_59
[fuzz-exec] note result: func_59 => anyref
[fuzz-exec] calling func_59_invoker
[fuzz-exec] calling func_60
[fuzz-exec] calling func_64
[LoggingExternalInterface logging -22 0]
[LoggingExternalInterface logging 1741046490]
     *exception*
[fuzz-exec] calling func_66
[fuzz-exec] note result: func_66 => externref
[fuzz-exec] calling func_67
     *exception*
[fuzz-exec] calling func_69
[fuzz-exec] note result: func_69 => 0
[fuzz-exec] calling func_72_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_73
[fuzz-exec] note result: func_73 => 0
[fuzz-exec] calling func_74
[LoggingExternalInterface logging 0]
[fuzz-exec] note result: func_74 => anyref
[fuzz-exec] calling func_74_invoker
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_75
[fuzz-exec] note result: func_75 => funcref
[fuzz-exec] calling func_78_invoker
[fuzz-exec] calling func_79_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_80
[fuzz-exec] note result: func_80 => 0
[fuzz-exec] calling func_81
[fuzz-exec] note result: func_81 => funcref
[fuzz-exec] calling func_82
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_85_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_86
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] note result: func_86 => 32769
[fuzz-exec] calling func_86_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_87
     *exception*
[fuzz-exec] calling func_87_invoker
[fuzz-exec] calling func_88
[fuzz-exec] note result: func_88 => 0
[fuzz-exec] calling func_89_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 32769 0]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_90
[LoggingExternalInterface logging 0 0]
[fuzz-exec] calling func_91
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 0 0]
[fuzz-exec] note result: func_91 => anyref
[fuzz-exec] calling func_94
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] note result: func_94 => anyref
[fuzz-exec] calling func_95
     *exception*
[fuzz-exec] calling func_95_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_96_invoker
[LoggingExternalInterface logging 18446744073709552000]
[fuzz-exec] calling func_98
     *exception*
[fuzz-exec] calling func_98_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_99
[fuzz-exec] note result: func_99 => externref
[fuzz-exec] calling func_99_invoker
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_102_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 0 0]
[LoggingExternalInterface logging 227]
[LoggingExternalInterface logging 189]
[fuzz-exec] calling func_103_invoker
[LoggingExternalInterface logging 1741046490]
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 1741046490]
[fuzz-exec] calling func_104
[LoggingExternalInterface logging 4.059587228825267e+271]
[fuzz-exec] note result: func_104 => anyref
[fuzz-exec] calling func_105
[LoggingExternalInterface logging 32768]
[fuzz-exec] note result: func_105 => -1323014807
[fuzz-exec] calling hangLimitInitializer', diff:

--- expected

+++ actual

@@ -23,18 +23,17 @@

 [LoggingExternalInterface logging 1557176224]
 [LoggingExternalInterface logging 1557176224]
 [fuzz-exec] calling func_3
-[fuzz-exec] note result: func_3 => eqref
+     *exception*
 [fuzz-exec] calling func_4_invoker
 [fuzz-exec] calling func_6
-[fuzz-exec] note result: func_6 => eqref
+     *exception*
 [fuzz-exec] calling func_6_invoker
 [LoggingExternalInterface logging 1557176224]
 [fuzz-exec] calling func_8
-[fuzz-exec] note result: func_8 => 0
+     *exception*
 [fuzz-exec] calling func_8_invoker
 [fuzz-exec] calling func_9
-[LoggingExternalInterface logging 1557176224]
-[fuzz-exec] note result: func_9 => 0
+     *exception*
 [fuzz-exec] calling func_9_invoker
 [LoggingExternalInterface logging 1557176224]
 [fuzz-exec] calling func_10_invoker
@@ -46,11 +45,11 @@

 [fuzz-exec] calling func_13_invoker
 [fuzz-exec] calling func_14
 [fuzz-exec] calling func_15
-[fuzz-exec] note result: func_15 => externref
+     *exception*
 [fuzz-exec] calling func_15_invoker
 [LoggingExternalInterface logging -703613227]
 [fuzz-exec] calling func_16
-[fuzz-exec] note result: func_16 => -32768
+     *exception*
 [fuzz-exec] calling func_17
 [fuzz-exec] note result: func_17 => externref
 [fuzz-exec] calling func_18
@@ -60,18 +59,9 @@

 [LoggingExternalInterface logging -703613227]
 [fuzz-exec] note result: func_18 => anyref
 [fuzz-exec] calling func_19
-[LoggingExternalInterface logging -109 -1]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -18446744073709551615]
-[fuzz-exec] note result: func_19 => eqref
+     *exception*
 [fuzz-exec] calling func_21
-[LoggingExternalInterface logging 0]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging -703613227]
-[LoggingExternalInterface logging 189]
-[fuzz-exec] note result: func_21 => eqref
+     *exception*
 [fuzz-exec] calling func_21_invoker
 [LoggingExternalInterface logging 0]
 [LoggingExternalInterface logging -703613227]
@@ -115,7 +105,7 @@

 [fuzz-exec] calling func_35_invoker
 [LoggingExternalInterface logging 916524455]
 [fuzz-exec] calling func_36
-[LoggingExternalInterface logging 0 0]
+     *exception*
 [fuzz-exec] calling func_36_invoker
 [LoggingExternalInterface logging 0 0]
 [LoggingExternalInterface logging 916524405]
@@ -124,9 +114,9 @@

 [LoggingExternalInterface logging 189]
 [LoggingExternalInterface logging 189]
 [fuzz-exec] calling func_37
-[fuzz-exec] note result: func_37 => 0
+     *exception*
 [fuzz-exec] calling func_38
-[fuzz-exec] note result: func_38 => anyref
+     *exception*
 [fuzz-exec] calling func_38_invoker
 [fuzz-exec] calling func_39_invoker
 [LoggingExternalInterface logging 916524405]
@@ -137,8 +127,7 @@

 [fuzz-exec] calling func_40_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_41
-[LoggingExternalInterface logging -9223372036854796288]
-[fuzz-exec] note result: func_41 => eqref
+     *exception*
 [fuzz-exec] calling func_42_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_43_invoker
@@ -146,19 +135,15 @@

 [fuzz-exec] calling func_44_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_45
-[fuzz-exec] note result: func_45 => 0
+     *exception*
 [fuzz-exec] calling func_46
 [fuzz-exec] note result: func_46 => funcref
 [fuzz-exec] calling func_46_invoker
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_48
-[LoggingExternalInterface logging 0]
+     *exception*
 [fuzz-exec] calling func_49
-[LoggingExternalInterface logging 0 0]
-[LoggingExternalInterface logging 0 0]
-[LoggingExternalInterface logging 0 0]
-[LoggingExternalInterface logging 0 0]
-[fuzz-exec] note result: func_49 => eqref
+     *exception*
 [fuzz-exec] calling func_49_invoker
 [LoggingExternalInterface logging 0 0]
 [LoggingExternalInterface logging 0 0]
@@ -171,11 +156,11 @@

 [LoggingExternalInterface logging 916524405]
 [LoggingExternalInterface logging 916524405]
 [fuzz-exec] calling func_51
-[fuzz-exec] note result: func_51 => eqref
+     *exception*
 [fuzz-exec] calling func_53
 [fuzz-exec] note result: func_53 => 22572
 [fuzz-exec] calling func_54
-[fuzz-exec] note result: func_54 => -29
+     *exception*
 [fuzz-exec] calling func_54_invoker
 [fuzz-exec] calling func_56_invoker
 [LoggingExternalInterface logging 916524405]
@@ -192,9 +177,7 @@

 [fuzz-exec] calling func_66
 [fuzz-exec] note result: func_66 => externref
 [fuzz-exec] calling func_67
-[LoggingExternalInterface logging 1741046490]
-[LoggingExternalInterface logging 1741046490]
-[fuzz-exec] note result: func_67 => eqref
+     *exception*
 [fuzz-exec] calling func_69
 [fuzz-exec] note result: func_69 => 0
 [fuzz-exec] calling func_72_invoker
@@ -233,7 +216,7 @@

 [LoggingExternalInterface logging 1741046490]
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_87
-[fuzz-exec] note result: func_87 => funcref
+     *exception*
 [fuzz-exec] calling func_87_invoker
 [fuzz-exec] calling func_88
 [fuzz-exec] note result: func_88 => 0
@@ -253,13 +236,13 @@

 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] note result: func_94 => anyref
 [fuzz-exec] calling func_95
-[fuzz-exec] note result: func_95 => anyref
+     *exception*
 [fuzz-exec] calling func_95_invoker
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_96_invoker
-[LoggingExternalInterface logging 18446744073709551615]
+[LoggingExternalInterface logging 18446744073709552000]
 [fuzz-exec] calling func_98
-[fuzz-exec] note result: func_98 => eqref
+     *exception*
 [fuzz-exec] calling func_98_invoker
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_99
@@ -277,7 +260,7 @@

 [LoggingExternalInterface logging 0]
 [LoggingExternalInterface logging 1741046490]
 [fuzz-exec] calling func_104
-[LoggingExternalInterface logging 4059587228825267051915762e247]
+[LoggingExternalInterface logging 4.059587228825267e+271]
 [fuzz-exec] note result: func_104 => anyref
 [fuzz-exec] calling func_105
 [LoggingExternalInterface logging 32768]

================================================================================
You found a bug! Please report it with

  seed: 2198334085169641142

and the exact version of Binaryen you found it on, plus the exact Python
version (hopefully deterministic random numbers will be identical).

You can run that testcase again with "fuzz_opt.py 2198334085169641142"

The initial wasm file used here is saved as /Volumes/Archive/Projects/Github/binaryen/out/test/original.wasm

You can reduce the testcase by running this now:

||||
vvvv


/Volumes/Archive/Projects/Github/binaryen/bin/wasm-reduce /Volumes/Archive/Projects/Github/binaryen/out/test/original.wasm '--command=bash /Volumes/Archive/Projects/Github/binaryen/out/test/reduce.sh' -t /Volumes/Archive/Projects/Github/binaryen/out/test/t.wasm -w /Volumes/Archive/Projects/Github/binaryen/out/test/w.wasm


^^^^
||||

Make sure to verify by eye that the output says something like this:

At least one of the next two values should be 0:
  0
  1
The following value should be 1:
  1

(If it does not, then one possible issue is that the fuzzer fails to write a
valid binary. If so, you can print the output of the fuzzer's first command
(using -ttf / --translate-to-fuzz) in text form and run the reduction from that,
passing --text to the reducer.)

You can also read "/Volumes/Archive/Projects/Github/binaryen/out/test/reduce.sh" which has been filled out for you and includes
docs and suggestions.

After reduction, the reduced file will be in /Volumes/Archive/Projects/Github/binaryen/out/test/w.wasm
================================================================================
                
(finished running seed 2198334085169641142, see error above)

MacOS 11.4 (Intel)
v8/d8 9.1.269.36
clang version 12.0.1
Python 3.9.6

@kripken
Copy link
Member

kripken commented Jul 13, 2021

Thanks! Diffing our output,

--- o	2021-07-13 12:58:23.240913155 -0700
+++ oo	2021-07-13 12:59:07.917374802 -0700
@@ -1,28 +1,839 @@
 POSSIBLE_FEATURE_OPTS: ['--disable-threads', '--disable-mutable-globals', '--disable-nontrapping-float-to-int', '--disable-simd', '--disable-bulk-memory', '--disable-sign-ext', '--disable-exception-handling', '--disable-tail-call', '--disable-reference-types', '--disable-multivalue', '--disable-gc', '--disable-memory64', '--disable-typed-function-references']
 checking a single given seed 2198334085169641142
 
-ITERATION: 1 seed: 2198334085169641142 size: 24442 (mean: 24442.0, stddev: 0.0) speed: 17623.126050420167 iters/sec,  0.0 wasm_bytes/sec
+ITERATION: 1 seed: 2198334085169641142 size: 24442 (mean: 24442.0, stddev: 0.0) speed: 20763.881188118812 iters/sec,  0.0 wasm_bytes/sec
 
 randomized pass debug: 
 randomized feature opts: --all-features --disable-threads --disable-mutable-globals --disable-simd --disable-memory64 --disable-typed-function-references
 randomized settings (NaNs, OOB, legalize): False False True
-initial contents: /home/azakai/Dev/2-binaryen/test/unit/input/asyncify-stackOverflow.wat
+initial contents: /Volumes/Archive/Projects/Github/binaryen/test/lld/main_module_table_5.wat
+(initial contents not valid for features, ignoring)
 randomized opts: --roundtrip --roundtrip --inlining --simplify-locals-nostructure --shrink-level=0 -fimfs=99999999

The wasm size is the same, as are the feature opts etc. - everything looks good until the diff reaches the initial contents. Given that, I think this might be fixed by #3981 However, I'm not sure. But please try with very latest main plus that PR.

@MaxGraey
Copy link
Contributor Author

MaxGraey commented Jul 13, 2021

Can confirm, this new PR #3981 now fix this issue! Thanks for the quick fix!

@MaxGraey MaxGraey changed the title Fuzzing issue related to GC types Fuzzing issue related to post-mvp features Jul 13, 2021
@MaxGraey
Copy link
Contributor Author

Hmm, I try fuzzing again with latest main and got similar issue again very quickly:

warning: no output file specified, not emitting output
POSSIBLE_FEATURE_OPTS: ['--disable-threads', '--disable-mutable-globals', '--disable-nontrapping-float-to-int', '--disable-simd', '--disable-bulk-memory', '--disable-sign-ext', '--disable-exception-handling', '--disable-tail-call', '--disable-reference-types', '--disable-multivalue', '--disable-gc', '--disable-memory64', '--disable-typed-function-references']
checking a single given seed 15074667408496617758

ITERATION: 1 seed: 15074667408496617758 size: 10192 (mean: 10192.0, stddev: 0.0) speed: 14513.162629757786 iters/sec,  0.0 wasm_bytes/sec

randomized pass debug: 
randomized feature opts: --all-features --disable-threads --disable-simd --disable-sign-ext --disable-exception-handling --disable-tail-call --disable-multivalue --disable-typed-function-references
randomized settings (NaNs, OOB, legalize): False True True
avoiding --flatten due to GC not supporting it (spilling of RTTs)
randomized opts: --roundtrip --remove-unused-names --heap2local --inlining-optimizing -Os --generate-stack-ir --inlining

/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt input.dat -ttf -o a.wasm --denan --legalize-js-interface --all-features --disable-threads --disable-simd --disable-sign-ext --disable-exception-handling --disable-tail-call --disable-multivalue --disable-typed-function-references
pre wasm size: 3942
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --all-features --disable-threads --disable-simd --disable-sign-ext --disable-exception-handling --disable-tail-call --disable-multivalue --disable-typed-function-references --print-features
warning: no output file specified, not emitting output
['--enable-mutable-globals', '--enable-nontrapping-float-to-int', '--enable-bulk-memory', '--enable-reference-types', '--enable-gc', '--enable-memory64'] []
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm -o b.wasm --roundtrip --remove-unused-names --heap2local --inlining-optimizing -Os --generate-stack-ir --inlining --denan --legalize-js-interface --enable-mutable-globals --enable-nontrapping-float-to-int --enable-bulk-memory --enable-reference-types --enable-gc --enable-memory64
post wasm size: 2059
running testcase handler: FuzzExec
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --roundtrip --remove-unused-names --heap2local --inlining-optimizing -Os --generate-stack-ir --inlining --enable-mutable-globals --enable-nontrapping-float-to-int --enable-bulk-memory --enable-reference-types --enable-gc --enable-memory64 --fuzz-exec
warning: no output file specified, not emitting output

running testcase handler: CompareVMs
[CompareVMs] running binaryen interpreter
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --enable-mutable-globals --enable-nontrapping-float-to-int --enable-bulk-memory --enable-reference-types --enable-gc --enable-memory64 --fuzz-exec-before
warning: no passes specified, not doing any work
warning: no output file specified, not emitting output
[CompareVMs] running d8
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --emit-js-wrapper=a.wasm.js --enable-mutable-globals --enable-nontrapping-float-to-int --enable-bulk-memory --enable-reference-types --enable-gc --enable-memory64
warning: no passes specified, not doing any work
warning: no output file specified, not emitting output
/Volumes/Archive/Projects/Github/binaryen/third_party/v8/d8 a.wasm.js --wasm-staging --experimental-wasm-eh --experimental-wasm-compilation-hints --experimental-wasm-gc --experimental-wasm-typed-funcref --experimental-wasm-memory64 -- a.wasm
[CompareVMs] running d8_liftoff
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --emit-js-wrapper=a.wasm.js --enable-mutable-globals --enable-nontrapping-float-to-int --enable-bulk-memory --enable-reference-types --enable-gc --enable-memory64
warning: no passes specified, not doing any work
warning: no output file specified, not emitting output
/Volumes/Archive/Projects/Github/binaryen/third_party/v8/d8 a.wasm.js --wasm-staging --experimental-wasm-eh --experimental-wasm-compilation-hints --experimental-wasm-gc --experimental-wasm-typed-funcref --experimental-wasm-memory64 --liftoff --no-wasm-tier-up -- a.wasm
[CompareVMs] running d8_turbofan
/Volumes/Archive/Projects/Github/binaryen/bin/wasm-opt a.wasm --emit-js-wrapper=a.wasm.js --enable-mutable-globals --enable-nontrapping-float-to-int --enable-bulk-memory --enable-reference-types --enable-gc --enable-memory64
warning: no passes specified, not doing any work
warning: no output file specified, not emitting output
/Volumes/Archive/Projects/Github/binaryen/third_party/v8/d8 a.wasm.js --wasm-staging --experimental-wasm-eh --experimental-wasm-compilation-hints --experimental-wasm-gc --experimental-wasm-typed-funcref --experimental-wasm-memory64 --no-liftoff -- a.wasm
!
-----------------------------------------
Exception:
  File "./scripts/fuzz_opt.py", line 1195, in <module>
  File "./scripts/fuzz_opt.py", line 1005, in test_one
  File "./scripts/fuzz_opt.py", line 673, in handle_pair
  File "./scripts/fuzz_opt.py", line 693, in run_vms
  File "./scripts/fuzz_opt.py", line 351, in compare_between_vms
  File "./scripts/fuzz_opt.py", line 302, in compare
-----------------------------------------
!
CompareVMs between VMs: binaryen interpreter and d8 (note: different number of lines between vms) comparison error, expected to have '[fuzz-exec] calling hashMemory
     *exception*
[fuzz-exec] calling func
[fuzz-exec] note result: func => funcref
[fuzz-exec] calling func_2_invoker
     *exception*
[fuzz-exec] calling func_4
     *exception*
[fuzz-exec] calling func_5
[LoggingExternalInterface logging 0]
[fuzz-exec] note result: func_5 => funcref
[fuzz-exec] calling func_8_invoker
     *exception*
[fuzz-exec] calling func_9_invoker
[fuzz-exec] calling func_10
[fuzz-exec] note result: func_10 => -9223372036854775808
[fuzz-exec] calling func_10_invoker
     *exception*
[fuzz-exec] calling func_11
[LoggingExternalInterface logging 0]
[fuzz-exec] calling func_12
[fuzz-exec] note result: func_12 => 234
[fuzz-exec] calling func_12_invoker
[fuzz-exec] calling func_14_invoker
     *exception*
[fuzz-exec] calling func_15
[fuzz-exec] note result: func_15 => eqref
[fuzz-exec] calling func_16
     *exception*
[fuzz-exec] calling func_17_invoker
     *exception*
[fuzz-exec] calling func_18
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[LoggingExternalInterface logging -677 -1]
[fuzz-exec] note result: func_18 => eqref
[fuzz-exec] calling func_19
[fuzz-exec] note result: func_19 => 1048576
[fuzz-exec] calling hangLimitInitializer' == '[fuzz-exec] calling hashMemory
     *exception*
[fuzz-exec] calling func
[fuzz-exec] note result: func => funcref
[fuzz-exec] calling func_2_invoker
     *exception*
[fuzz-exec] calling func_4
     *exception*
[fuzz-exec] calling func_5
[LoggingExternalInterface logging 0]
[fuzz-exec] note result: func_5 => funcref
[fuzz-exec] calling func_8_invoker
     *exception*
[fuzz-exec] calling func_9_invoker
[fuzz-exec] calling func_10
[fuzz-exec] note result: func_10 => -9223372036854776000
[fuzz-exec] calling func_10_invoker
     *exception*
[fuzz-exec] calling func_11
[LoggingExternalInterface logging 0]
[fuzz-exec] calling func_12
[fuzz-exec] note result: func_12 => 234
[fuzz-exec] calling func_12_invoker
[fuzz-exec] calling func_14_invoker
     *exception*
[fuzz-exec] calling func_15
     *exception*
[fuzz-exec] calling func_16
     *exception*
[fuzz-exec] calling func_17_invoker
     *exception*
[fuzz-exec] calling func_18
     *exception*
[fuzz-exec] calling func_19
     *exception*
[fuzz-exec] calling hangLimitInitializer', diff:

--- expected

+++ actual

@@ -13,7 +13,7 @@

      *exception*
 [fuzz-exec] calling func_9_invoker
 [fuzz-exec] calling func_10
-[fuzz-exec] note result: func_10 => -9223372036854775808
+[fuzz-exec] note result: func_10 => -9223372036854776000
 [fuzz-exec] calling func_10_invoker
      *exception*
 [fuzz-exec] calling func_11
@@ -24,22 +24,13 @@

 [fuzz-exec] calling func_14_invoker
      *exception*
 [fuzz-exec] calling func_15
-[fuzz-exec] note result: func_15 => eqref
+     *exception*
 [fuzz-exec] calling func_16
      *exception*
 [fuzz-exec] calling func_17_invoker
      *exception*
 [fuzz-exec] calling func_18
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[LoggingExternalInterface logging -677 -1]
-[fuzz-exec] note result: func_18 => eqref
+     *exception*
 [fuzz-exec] calling func_19
-[fuzz-exec] note result: func_19 => 1048576
+     *exception*
 [fuzz-exec] calling hangLimitInitializer

================================================================================
You found a bug! Please report it with

  seed: 15074667408496617758

and the exact version of Binaryen you found it on, plus the exact Python
version (hopefully deterministic random numbers will be identical).

You can run that testcase again with "fuzz_opt.py 15074667408496617758"

The initial wasm file used here is saved as /Volumes/Archive/Projects/Github/binaryen/out/test/original.wasm

You can reduce the testcase by running this now:

||||
vvvv


/Volumes/Archive/Projects/Github/binaryen/bin/wasm-reduce /Volumes/Archive/Projects/Github/binaryen/out/test/original.wasm '--command=bash /Volumes/Archive/Projects/Github/binaryen/out/test/reduce.sh' -t /Volumes/Archive/Projects/Github/binaryen/out/test/t.wasm -w /Volumes/Archive/Projects/Github/binaryen/out/test/w.wasm


^^^^
||||

Make sure to verify by eye that the output says something like this:

At least one of the next two values should be 0:
  0
  1
The following value should be 1:
  1

(If it does not, then one possible issue is that the fuzzer fails to write a
valid binary. If so, you can print the output of the fuzzer's first command
(using -ttf / --translate-to-fuzz) in text form and run the reduction from that,
passing --text to the reducer.)

You can also read "/Volumes/Archive/Projects/Github/binaryen/out/test/reduce.sh" which has been filled out for you and includes
docs and suggestions.

After reduction, the reduced file will be in /Volumes/Archive/Projects/Github/binaryen/out/test/w.wasm
================================================================================
                
(finished running seed 15074667408496617758, see error above)

@kripken
Copy link
Member

kripken commented Jul 15, 2021

That passes for me locally. Is it possible you have an older d8? A bug may have been fixed.

If that's not it, please reduce it.

@MaxGraey
Copy link
Contributor Author

I have d8 9.1.269.36. Should I update it?

@kripken
Copy link
Member

kripken commented Jul 15, 2021

I'd recommend that, yes. 9.3.0 is the current one.

@MaxGraey

This comment has been minimized.

@MaxGraey
Copy link
Contributor Author

Ah, sorry. Now it fixed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants