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

Kernel#sleep stops working since version 2.3.0-2023-11-26-a in the npm ruby-head-wasm-wasi. #579

Open
tonytonyjan opened this issue Feb 16, 2025 · 3 comments

Comments

@tonytonyjan
Copy link

Descriptoin

The fundamental methodKernel#sleep stops working in the latest version of Ruby WASM package. My current workaround is to override the Kernel#sleep like:

module Kernel
  def sleep(time)
    JS.eval("return new Promise((resolve) => setTimeout(resolve, #{time * 1000}))").await
  end
end

Reproduce

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script type="module">
      import { DefaultRubyVM as DefaultRubyVM_2_2 } from "https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@2.2.0-2023-11-25-a/dist/browser.esm.js";
      import { DefaultRubyVM as DefaultRubyVM_2_3 } from "https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@2.3.0-2023-11-26-a/dist/browser.esm.js";
      const { vm: vm_2_2 } = await DefaultRubyVM_2_3(
        await WebAssembly.compileStreaming(
          await fetch(
            "https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@2.2.0-2023-11-25-a/dist/ruby+stdlib.wasm"
          )
        )
      );
      const { vm: vm_2_3 } = await DefaultRubyVM_2_3(
        await WebAssembly.compileStreaming(
          await fetch(
            "https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@2.3.0-2023-11-26-a/dist/ruby+stdlib.wasm"
          )
        )
      );
      try {
        vm_2_2.eval('sleep 1; puts "vm_2_2"')
      } catch (error) {
        console.error(error);
      }
      try {
        vm_2_3.eval('sleep 1; puts "vm_2_3"')
      } catch (error) {
        console.error(error);
      }
    </script>
  </body>
</html>

Expected

Browser console should print both "vm_2_2" and "vm_2_3".

Actual

Browser prints "vm_2_2" successfully but failed to print "vm_2_3".

browser.esm.js:3209 vm_2_2
browser.esm.js:3209 -- Control frame information -----------------------------------------------

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64bcf3
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 c:0003 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c0f9
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 p:---- 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c14d
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 s:0011 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c1fd
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 e:000010 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c248
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 CFUNC 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c28e
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209  :sleep
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c2e6
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c377
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 c:0002 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c0f9
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 p:0004 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c19f
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 s:0006 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c1fd
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 e:000005 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c248
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 EVAL  
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c28e
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209  eval:1
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c2e6
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209  [FINISH]
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c33d
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c377
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 c:0001 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c0f9
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 p:0000 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c19f
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 s:0003 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c1fd
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 E:001618 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c248
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 DUMMY 
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c28e
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209  [FINISH]
imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c33d
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c377
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8621 @ ruby+stdlib.wasm:0x64c836
$func8623 @ ruby+stdlib.wasm:0x64cafd
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 -- Ruby level backtrace information ----------------------------------------

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17377 @ ruby+stdlib.wasm:0xa8b64b
$func8595 @ ruby+stdlib.wasm:0x649523
$func8623 @ ruby+stdlib.wasm:0x64cb1f
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 eval:1:in `<main>'

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8595 @ ruby+stdlib.wasm:0x6495e8
$func8623 @ ruby+stdlib.wasm:0x64cb1f
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 eval:1:in `sleep'

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8595 @ ruby+stdlib.wasm:0x64973a
$func8623 @ ruby+stdlib.wasm:0x64cb1f
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17377 @ ruby+stdlib.wasm:0xa8b64b
$func17369 @ ruby+stdlib.wasm:0xa8aaf8
$func8623 @ ruby+stdlib.wasm:0x64cb40
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 -- Threading information ---------------------------------------------------

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cb79
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 Total ractor count: 1

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cbc5
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 Ruby thread count for this ractor: 1

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cc1b
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17377 @ ruby+stdlib.wasm:0xa8b64b
$func17369 @ ruby+stdlib.wasm:0xa8aaf8
$func8623 @ ruby+stdlib.wasm:0x64cc52
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 -- Other runtime information -----------------------------------------------


imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cc9c
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 * Loaded script: -e

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cd3b
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cd78
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 * Loaded features:


imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cdd1
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     0 enumerator.so

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     1 thread.rb

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     2 fiber.so

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     3 rational.so

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     4 complex.so

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     5 ruby2_keywords.rb

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     6 encdb.so

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209     7 trans/transdb.so

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64cefc
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
browser.esm.js:3209 

imports.wasi_snapshot_preview1.fd_write @ browser.esm.js:3209
$func17164 @ ruby+stdlib.wasm:0xa7cf30
$func17193 @ ruby+stdlib.wasm:0xa7dcdf
$func17226 @ ruby+stdlib.wasm:0xa7e417
$func16888 @ ruby+stdlib.wasm:0xa61453
$func17354 @ ruby+stdlib.wasm:0xa8995b
$func17394 @ ruby+stdlib.wasm:0xa8c57d
$func17368 @ ruby+stdlib.wasm:0xa8aa14
$func8623 @ ruby+stdlib.wasm:0x64d20a
$func140 @ ruby+stdlib.wasm:0xf350
$rb-vm-bugreport:_func___->___ @ ruby+stdlib.wasm:0xf9be
rbVmBugreport @ browser.esm.js:2238
exports.<computed> @ browser.esm.js:2645
wrapRbOperation @ browser.esm.js:3128
evalRbCode @ browser.esm.js:3148
eval @ browser.esm.js:2882
(anonymous) @ index.html:32
index.html:34 RbError: Something went wrong in Ruby VM: RuntimeError: unreachable
    at 0013fce2:0x3ff74
    at 0013fce2:0x42827
    at 0013fce2:0x9cbc
    at 0013fce2:0x39cf8
    at ruby+stdlib.wasm:0xa7c090
    at ruby+stdlib.wasm:0xa7d8dc
    at ruby+stdlib.wasm:0xa7dfe7
    at ruby+stdlib.wasm:0xa7e786
    at ruby+stdlib.wasm:0xa61708
    at ruby+stdlib.wasm:0x58e387
(anonymous) @ index.html:34
@kateinoigakukun
Copy link
Member

Thank you for narrowing down the issue! With ruby.debug+stdlib.wasm, I identified the crash happens on poll_oneoff implementation in wasi-vfs.

Stack trace
(index):35 RbError: Something went wrong in Ruby VM: RuntimeError: unreachable
    at 0013fce2:0x3ff74
    at 0013fce2:0x42827
    at 0013fce2:0x9cbc
    at 0013fce2:0x39cf8
    at wasi_vfs::wasi_snapshot_preview1::poll_oneoff::h441084cfdf4da2ed (ruby.debug+stdlib.wasm:0xa9423b)
    at wasi_vfs_wasi_snapshot_preview1_poll_oneoff (ruby.debug+stdlib.wasm:0xa95ac1)
    at __imported_wasi_snapshot_preview1_poll_oneoff (ruby.debug+stdlib.wasm:0xa961cc)
    at __wasi_poll_oneoff (ruby.debug+stdlib.wasm:0xa9696f)
    at clock_nanosleep (ruby.debug+stdlib.wasm:0xa792e7)
    at rb_array_len (thread_none.c:270)    at rb_threadptr_pending_interrupt_empty_p (thread.c:1955)    at vm_check_ints_blocking (thread.c:214)    at sleep_hrtime (thread.c:1275)

It seems like the change between two versions added poll_oneoff implementation in wasi-vfs, so it seems very relevant. I'll take a closer look. kateinoigakukun/wasi-vfs@9e70c75

@kateinoigakukun
Copy link
Member

Hmm, ok poll_oneoff is not supported in @bjorn3/browser_wasi_shim: https://github.com/bjorn3/browser_wasi_shim/blob/c807daebdb001d503968288a448b7e8dee233959/src/wasi.ts#L818

In 2.3.x era, we used @wasmer/wasi and it supported the syscall in a blocking way, so it "worked" in the past.

@kateinoigakukun
Copy link
Member

Let's try adding poll_oneoff in @bjorn3/browser_wasi_shim side: bjorn3/browser_wasi_shim#88

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

No branches or pull requests

2 participants