fd_write crash on send_downstream() when updating to latest Viceroy #5

Description

@erikrose

I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

% make serve
rm -rf hello_compute
componentize-py -d wit -w compute bindings hello_compute
componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
Component built successfully
viceroy --adapt app.wasm
2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
17: 0x185f3 - <unknown>!<wasm function 484>
18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
20: 0x13bb483 - _PyObject_VectorcallTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
- PyObject_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
21: 0x14dbd2d - _PyEval_EvalFrameDefault
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
22: 0x14ddfd4 - _PyEval_EvalFrame
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
- _PyEval_Vector
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
23: 0x13bb94d - _PyFunction_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
24: 0x13babcb - _PyObject_FastCallDictTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
25: 0x13bbc35 - _PyObject_Call_Prepend
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
26: 0x143d0c9 - slot_tp_call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
27: 0x13baac3 - _PyObject_MakeTpCall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
28: 0x13bb46e - _PyObject_VectorcallTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
- PyObject_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
29: 0x14dbd2d - _PyEval_EvalFrameDefault
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
30: 0x14ddfd4 - _PyEval_EvalFrame
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
- _PyEval_Vector
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
31: 0x13bb94d - _PyFunction_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
32: 0x13bdf7a - _PyObject_VectorcallTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
- method_vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
33: 0x13bb30c - _PyVectorcall_Call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
34: 0x13bb6ef - _PyObject_Call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
35: 0x13bb789 - PyObject_Call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
36: 0x181c9 - <unknown>!<wasm function 406>
37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
Caused by:
wasm trap: wasm `unreachable` instruction executed
2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
17: 0x185f3 - <unknown>!<wasm function 484>
18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
20: 0x13bb483 - _PyObject_VectorcallTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
- PyObject_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
21: 0x14dbd2d - _PyEval_EvalFrameDefault
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
22: 0x14ddfd4 - _PyEval_EvalFrame
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
- _PyEval_Vector
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
23: 0x13bb94d - _PyFunction_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
24: 0x13babcb - _PyObject_FastCallDictTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
25: 0x13bbc35 - _PyObject_Call_Prepend
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
26: 0x143d0c9 - slot_tp_call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
27: 0x13baac3 - _PyObject_MakeTpCall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
28: 0x13bb46e - _PyObject_VectorcallTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
- PyObject_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
29: 0x14dbd2d - _PyEval_EvalFrameDefault
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
30: 0x14ddfd4 - _PyEval_EvalFrame
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
- _PyEval_Vector
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
31: 0x13bb94d - _PyFunction_Vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
32: 0x13bdf7a - _PyObject_VectorcallTstate
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
- method_vectorcall
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
33: 0x13bb30c - _PyVectorcall_Call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
34: 0x13bb6ef - _PyObject_Call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
35: 0x13bb789 - PyObject_Call
at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
36: 0x181c9 - <unknown>!<wasm function 406>
37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export

I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      fd_write crash on send_downstream() when updating to latest Viceroy #5

      Description

      @erikrose

      I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

      % make serve
      rm -rf hello_compute
      componentize-py -d wit -w compute bindings hello_compute
      componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
      Component built successfully
      viceroy --adapt app.wasm
      2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
      0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
      1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
      2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
      3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
      4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
      5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
      6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
      7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
      8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
      9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
      10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
      11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
      12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
      13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
      14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
      15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
      16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
      17: 0x185f3 - <unknown>!<wasm function 484>
      18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
      19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
      20: 0x13bb483 - _PyObject_VectorcallTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
      - PyObject_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
      21: 0x14dbd2d - _PyEval_EvalFrameDefault
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
      22: 0x14ddfd4 - _PyEval_EvalFrame
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
      - _PyEval_Vector
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
      23: 0x13bb94d - _PyFunction_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
      24: 0x13babcb - _PyObject_FastCallDictTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
      25: 0x13bbc35 - _PyObject_Call_Prepend
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
      26: 0x143d0c9 - slot_tp_call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
      27: 0x13baac3 - _PyObject_MakeTpCall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
      28: 0x13bb46e - _PyObject_VectorcallTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
      - PyObject_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
      29: 0x14dbd2d - _PyEval_EvalFrameDefault
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
      30: 0x14ddfd4 - _PyEval_EvalFrame
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
      - _PyEval_Vector
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
      31: 0x13bb94d - _PyFunction_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
      32: 0x13bdf7a - _PyObject_VectorcallTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
      - method_vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
      33: 0x13bb30c - _PyVectorcall_Call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
      34: 0x13bb6ef - _PyObject_Call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
      35: 0x13bb789 - PyObject_Call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
      36: 0x181c9 - <unknown>!<wasm function 406>
      37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
      38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
      39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
      Caused by:
      wasm trap: wasm `unreachable` instruction executed
      2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
      0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
      1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
      2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
      3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
      4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
      5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
      6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
      7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
      8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
      9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
      10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
      11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
      12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
      13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
      14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
      15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
      16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
      17: 0x185f3 - <unknown>!<wasm function 484>
      18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
      19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
      20: 0x13bb483 - _PyObject_VectorcallTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
      - PyObject_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
      21: 0x14dbd2d - _PyEval_EvalFrameDefault
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
      22: 0x14ddfd4 - _PyEval_EvalFrame
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
      - _PyEval_Vector
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
      23: 0x13bb94d - _PyFunction_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
      24: 0x13babcb - _PyObject_FastCallDictTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
      25: 0x13bbc35 - _PyObject_Call_Prepend
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
      26: 0x143d0c9 - slot_tp_call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
      27: 0x13baac3 - _PyObject_MakeTpCall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
      28: 0x13bb46e - _PyObject_VectorcallTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
      - PyObject_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
      29: 0x14dbd2d - _PyEval_EvalFrameDefault
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
      30: 0x14ddfd4 - _PyEval_EvalFrame
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
      - _PyEval_Vector
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
      31: 0x13bb94d - _PyFunction_Vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
      32: 0x13bdf7a - _PyObject_VectorcallTstate
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
      - method_vectorcall
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
      33: 0x13bb30c - _PyVectorcall_Call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
      34: 0x13bb6ef - _PyObject_Call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
      35: 0x13bb789 - PyObject_Call
      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
      36: 0x181c9 - <unknown>!<wasm function 406>
      37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
      38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
      39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
      

      I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

      Activity

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

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          fd_write crash on send_downstream() when updating to latest Viceroy #5

          Description

          @erikrose

          I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

          % make serve
          rm -rf hello_compute
          componentize-py -d wit -w compute bindings hello_compute
          componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
          Component built successfully
          viceroy --adapt app.wasm
          2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
          0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
          1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
          2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
          3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
          4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
          5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
          6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
          7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
          8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
          9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
          10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
          11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
          12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
          13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
          14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
          15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
          16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
          17: 0x185f3 - <unknown>!<wasm function 484>
          18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
          19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
          20: 0x13bb483 - _PyObject_VectorcallTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
          - PyObject_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
          21: 0x14dbd2d - _PyEval_EvalFrameDefault
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
          22: 0x14ddfd4 - _PyEval_EvalFrame
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
          - _PyEval_Vector
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
          23: 0x13bb94d - _PyFunction_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
          24: 0x13babcb - _PyObject_FastCallDictTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
          25: 0x13bbc35 - _PyObject_Call_Prepend
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
          26: 0x143d0c9 - slot_tp_call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
          27: 0x13baac3 - _PyObject_MakeTpCall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
          28: 0x13bb46e - _PyObject_VectorcallTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
          - PyObject_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
          29: 0x14dbd2d - _PyEval_EvalFrameDefault
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
          30: 0x14ddfd4 - _PyEval_EvalFrame
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
          - _PyEval_Vector
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
          31: 0x13bb94d - _PyFunction_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
          32: 0x13bdf7a - _PyObject_VectorcallTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
          - method_vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
          33: 0x13bb30c - _PyVectorcall_Call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
          34: 0x13bb6ef - _PyObject_Call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
          35: 0x13bb789 - PyObject_Call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
          36: 0x181c9 - <unknown>!<wasm function 406>
          37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
          38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
          39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
          Caused by:
          wasm trap: wasm `unreachable` instruction executed
          2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
          0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
          1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
          2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
          3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
          4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
          5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
          6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
          7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
          8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
          9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
          10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
          11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
          12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
          13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
          14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
          15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
          16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
          17: 0x185f3 - <unknown>!<wasm function 484>
          18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
          19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
          20: 0x13bb483 - _PyObject_VectorcallTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
          - PyObject_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
          21: 0x14dbd2d - _PyEval_EvalFrameDefault
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
          22: 0x14ddfd4 - _PyEval_EvalFrame
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
          - _PyEval_Vector
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
          23: 0x13bb94d - _PyFunction_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
          24: 0x13babcb - _PyObject_FastCallDictTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
          25: 0x13bbc35 - _PyObject_Call_Prepend
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
          26: 0x143d0c9 - slot_tp_call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
          27: 0x13baac3 - _PyObject_MakeTpCall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
          28: 0x13bb46e - _PyObject_VectorcallTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
          - PyObject_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
          29: 0x14dbd2d - _PyEval_EvalFrameDefault
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
          30: 0x14ddfd4 - _PyEval_EvalFrame
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
          - _PyEval_Vector
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
          31: 0x13bb94d - _PyFunction_Vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
          32: 0x13bdf7a - _PyObject_VectorcallTstate
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
          - method_vectorcall
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
          33: 0x13bb30c - _PyVectorcall_Call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
          34: 0x13bb6ef - _PyObject_Call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
          35: 0x13bb789 - PyObject_Call
          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
          36: 0x181c9 - <unknown>!<wasm function 406>
          37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
          38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
          39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
          

          I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

          Activity

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

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              fd_write crash on send_downstream() when updating to latest Viceroy #5

              Description

              @erikrose

              I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

              % make serve
              rm -rf hello_compute
              componentize-py -d wit -w compute bindings hello_compute
              componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
              Component built successfully
              viceroy --adapt app.wasm
              2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
              0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
              1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
              2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
              3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
              4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
              5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
              6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
              7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
              8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
              9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
              10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
              11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
              12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
              13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
              14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
              15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
              16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
              17: 0x185f3 - <unknown>!<wasm function 484>
              18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
              19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
              20: 0x13bb483 - _PyObject_VectorcallTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
              - PyObject_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
              21: 0x14dbd2d - _PyEval_EvalFrameDefault
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
              22: 0x14ddfd4 - _PyEval_EvalFrame
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
              - _PyEval_Vector
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
              23: 0x13bb94d - _PyFunction_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
              24: 0x13babcb - _PyObject_FastCallDictTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
              25: 0x13bbc35 - _PyObject_Call_Prepend
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
              26: 0x143d0c9 - slot_tp_call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
              27: 0x13baac3 - _PyObject_MakeTpCall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
              28: 0x13bb46e - _PyObject_VectorcallTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
              - PyObject_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
              29: 0x14dbd2d - _PyEval_EvalFrameDefault
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
              30: 0x14ddfd4 - _PyEval_EvalFrame
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
              - _PyEval_Vector
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
              31: 0x13bb94d - _PyFunction_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
              32: 0x13bdf7a - _PyObject_VectorcallTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
              - method_vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
              33: 0x13bb30c - _PyVectorcall_Call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
              34: 0x13bb6ef - _PyObject_Call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
              35: 0x13bb789 - PyObject_Call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
              36: 0x181c9 - <unknown>!<wasm function 406>
              37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
              38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
              39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
              Caused by:
              wasm trap: wasm `unreachable` instruction executed
              2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
              0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
              1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
              2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
              3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
              4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
              5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
              6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
              7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
              8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
              9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
              10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
              11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
              12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
              13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
              14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
              15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
              16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
              17: 0x185f3 - <unknown>!<wasm function 484>
              18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
              19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
              20: 0x13bb483 - _PyObject_VectorcallTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
              - PyObject_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
              21: 0x14dbd2d - _PyEval_EvalFrameDefault
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
              22: 0x14ddfd4 - _PyEval_EvalFrame
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
              - _PyEval_Vector
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
              23: 0x13bb94d - _PyFunction_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
              24: 0x13babcb - _PyObject_FastCallDictTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
              25: 0x13bbc35 - _PyObject_Call_Prepend
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
              26: 0x143d0c9 - slot_tp_call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
              27: 0x13baac3 - _PyObject_MakeTpCall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
              28: 0x13bb46e - _PyObject_VectorcallTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
              - PyObject_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
              29: 0x14dbd2d - _PyEval_EvalFrameDefault
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
              30: 0x14ddfd4 - _PyEval_EvalFrame
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
              - _PyEval_Vector
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
              31: 0x13bb94d - _PyFunction_Vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
              32: 0x13bdf7a - _PyObject_VectorcallTstate
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
              - method_vectorcall
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
              33: 0x13bb30c - _PyVectorcall_Call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
              34: 0x13bb6ef - _PyObject_Call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
              35: 0x13bb789 - PyObject_Call
              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
              36: 0x181c9 - <unknown>!<wasm function 406>
              37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
              38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
              39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
              

              I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

              Activity

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

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  fd_write crash on send_downstream() when updating to latest Viceroy #5

                  Description

                  @erikrose

                  I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

                  % make serve
                  rm -rf hello_compute
                  componentize-py -d wit -w compute bindings hello_compute
                  componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
                  Component built successfully
                  viceroy --adapt app.wasm
                  2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
                  0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                  1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                  2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                  3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                  4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                  5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                  6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                  7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                  8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                  9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                  10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                  11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                  12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                  13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                  14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                  15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                  16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                  17: 0x185f3 - <unknown>!<wasm function 484>
                  18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                  19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                  20: 0x13bb483 - _PyObject_VectorcallTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                  - PyObject_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                  21: 0x14dbd2d - _PyEval_EvalFrameDefault
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                  22: 0x14ddfd4 - _PyEval_EvalFrame
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                  - _PyEval_Vector
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                  23: 0x13bb94d - _PyFunction_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                  24: 0x13babcb - _PyObject_FastCallDictTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                  25: 0x13bbc35 - _PyObject_Call_Prepend
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                  26: 0x143d0c9 - slot_tp_call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                  27: 0x13baac3 - _PyObject_MakeTpCall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                  28: 0x13bb46e - _PyObject_VectorcallTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                  - PyObject_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                  29: 0x14dbd2d - _PyEval_EvalFrameDefault
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                  30: 0x14ddfd4 - _PyEval_EvalFrame
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                  - _PyEval_Vector
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                  31: 0x13bb94d - _PyFunction_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                  32: 0x13bdf7a - _PyObject_VectorcallTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                  - method_vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                  33: 0x13bb30c - _PyVectorcall_Call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                  34: 0x13bb6ef - _PyObject_Call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                  35: 0x13bb789 - PyObject_Call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                  36: 0x181c9 - <unknown>!<wasm function 406>
                  37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                  38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                  39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                  Caused by:
                  wasm trap: wasm `unreachable` instruction executed
                  2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
                  0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                  1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                  2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                  3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                  4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                  5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                  6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                  7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                  8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                  9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                  10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                  11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                  12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                  13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                  14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                  15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                  16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                  17: 0x185f3 - <unknown>!<wasm function 484>
                  18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                  19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                  20: 0x13bb483 - _PyObject_VectorcallTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                  - PyObject_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                  21: 0x14dbd2d - _PyEval_EvalFrameDefault
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                  22: 0x14ddfd4 - _PyEval_EvalFrame
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                  - _PyEval_Vector
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                  23: 0x13bb94d - _PyFunction_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                  24: 0x13babcb - _PyObject_FastCallDictTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                  25: 0x13bbc35 - _PyObject_Call_Prepend
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                  26: 0x143d0c9 - slot_tp_call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                  27: 0x13baac3 - _PyObject_MakeTpCall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                  28: 0x13bb46e - _PyObject_VectorcallTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                  - PyObject_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                  29: 0x14dbd2d - _PyEval_EvalFrameDefault
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                  30: 0x14ddfd4 - _PyEval_EvalFrame
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                  - _PyEval_Vector
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                  31: 0x13bb94d - _PyFunction_Vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                  32: 0x13bdf7a - _PyObject_VectorcallTstate
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                  - method_vectorcall
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                  33: 0x13bb30c - _PyVectorcall_Call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                  34: 0x13bb6ef - _PyObject_Call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                  35: 0x13bb789 - PyObject_Call
                  at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                  36: 0x181c9 - <unknown>!<wasm function 406>
                  37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                  38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                  39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                  

                  I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

                  Activity

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

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      fd_write crash on send_downstream() when updating to latest Viceroy #5

                      Description

                      @erikrose

                      I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

                      % make serve
                      rm -rf hello_compute
                      componentize-py -d wit -w compute bindings hello_compute
                      componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
                      Component built successfully
                      viceroy --adapt app.wasm
                      2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
                      0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                      1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                      2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                      3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                      4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                      5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                      6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                      7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                      8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                      9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                      10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                      11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                      12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                      13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                      14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                      15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                      16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                      17: 0x185f3 - <unknown>!<wasm function 484>
                      18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                      19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                      20: 0x13bb483 - _PyObject_VectorcallTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                      - PyObject_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                      21: 0x14dbd2d - _PyEval_EvalFrameDefault
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                      22: 0x14ddfd4 - _PyEval_EvalFrame
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                      - _PyEval_Vector
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                      23: 0x13bb94d - _PyFunction_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                      24: 0x13babcb - _PyObject_FastCallDictTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                      25: 0x13bbc35 - _PyObject_Call_Prepend
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                      26: 0x143d0c9 - slot_tp_call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                      27: 0x13baac3 - _PyObject_MakeTpCall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                      28: 0x13bb46e - _PyObject_VectorcallTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                      - PyObject_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                      29: 0x14dbd2d - _PyEval_EvalFrameDefault
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                      30: 0x14ddfd4 - _PyEval_EvalFrame
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                      - _PyEval_Vector
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                      31: 0x13bb94d - _PyFunction_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                      32: 0x13bdf7a - _PyObject_VectorcallTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                      - method_vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                      33: 0x13bb30c - _PyVectorcall_Call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                      34: 0x13bb6ef - _PyObject_Call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                      35: 0x13bb789 - PyObject_Call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                      36: 0x181c9 - <unknown>!<wasm function 406>
                      37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                      38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                      39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                      Caused by:
                      wasm trap: wasm `unreachable` instruction executed
                      2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
                      0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                      1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                      2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                      3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                      4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                      5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                      6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                      7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                      8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                      9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                      10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                      11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                      12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                      13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                      14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                      15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                      16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                      17: 0x185f3 - <unknown>!<wasm function 484>
                      18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                      19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                      20: 0x13bb483 - _PyObject_VectorcallTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                      - PyObject_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                      21: 0x14dbd2d - _PyEval_EvalFrameDefault
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                      22: 0x14ddfd4 - _PyEval_EvalFrame
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                      - _PyEval_Vector
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                      23: 0x13bb94d - _PyFunction_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                      24: 0x13babcb - _PyObject_FastCallDictTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                      25: 0x13bbc35 - _PyObject_Call_Prepend
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                      26: 0x143d0c9 - slot_tp_call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                      27: 0x13baac3 - _PyObject_MakeTpCall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                      28: 0x13bb46e - _PyObject_VectorcallTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                      - PyObject_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                      29: 0x14dbd2d - _PyEval_EvalFrameDefault
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                      30: 0x14ddfd4 - _PyEval_EvalFrame
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                      - _PyEval_Vector
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                      31: 0x13bb94d - _PyFunction_Vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                      32: 0x13bdf7a - _PyObject_VectorcallTstate
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                      - method_vectorcall
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                      33: 0x13bb30c - _PyVectorcall_Call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                      34: 0x13bb6ef - _PyObject_Call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                      35: 0x13bb789 - PyObject_Call
                      at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                      36: 0x181c9 - <unknown>!<wasm function 406>
                      37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                      38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                      39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                      

                      I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

                      Activity

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

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          fd_write crash on send_downstream() when updating to latest Viceroy #5

                          Description

                          @erikrose

                          I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

                          % make serve
                          rm -rf hello_compute
                          componentize-py -d wit -w compute bindings hello_compute
                          componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
                          Component built successfully
                          viceroy --adapt app.wasm
                          2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
                          0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                          1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                          2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                          3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                          4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                          5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                          6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                          7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                          8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                          9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                          10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                          11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                          12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                          13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                          14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                          15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                          16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                          17: 0x185f3 - <unknown>!<wasm function 484>
                          18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                          19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                          20: 0x13bb483 - _PyObject_VectorcallTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                          - PyObject_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                          21: 0x14dbd2d - _PyEval_EvalFrameDefault
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                          22: 0x14ddfd4 - _PyEval_EvalFrame
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                          - _PyEval_Vector
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                          23: 0x13bb94d - _PyFunction_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                          24: 0x13babcb - _PyObject_FastCallDictTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                          25: 0x13bbc35 - _PyObject_Call_Prepend
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                          26: 0x143d0c9 - slot_tp_call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                          27: 0x13baac3 - _PyObject_MakeTpCall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                          28: 0x13bb46e - _PyObject_VectorcallTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                          - PyObject_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                          29: 0x14dbd2d - _PyEval_EvalFrameDefault
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                          30: 0x14ddfd4 - _PyEval_EvalFrame
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                          - _PyEval_Vector
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                          31: 0x13bb94d - _PyFunction_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                          32: 0x13bdf7a - _PyObject_VectorcallTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                          - method_vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                          33: 0x13bb30c - _PyVectorcall_Call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                          34: 0x13bb6ef - _PyObject_Call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                          35: 0x13bb789 - PyObject_Call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                          36: 0x181c9 - <unknown>!<wasm function 406>
                          37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                          38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                          39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                          Caused by:
                          wasm trap: wasm `unreachable` instruction executed
                          2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
                          0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                          1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                          2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                          3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                          4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                          5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                          6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                          7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                          8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                          9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                          10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                          11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                          12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                          13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                          14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                          15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                          16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                          17: 0x185f3 - <unknown>!<wasm function 484>
                          18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                          19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                          20: 0x13bb483 - _PyObject_VectorcallTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                          - PyObject_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                          21: 0x14dbd2d - _PyEval_EvalFrameDefault
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                          22: 0x14ddfd4 - _PyEval_EvalFrame
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                          - _PyEval_Vector
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                          23: 0x13bb94d - _PyFunction_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                          24: 0x13babcb - _PyObject_FastCallDictTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                          25: 0x13bbc35 - _PyObject_Call_Prepend
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                          26: 0x143d0c9 - slot_tp_call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                          27: 0x13baac3 - _PyObject_MakeTpCall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                          28: 0x13bb46e - _PyObject_VectorcallTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                          - PyObject_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                          29: 0x14dbd2d - _PyEval_EvalFrameDefault
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                          30: 0x14ddfd4 - _PyEval_EvalFrame
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                          - _PyEval_Vector
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                          31: 0x13bb94d - _PyFunction_Vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                          32: 0x13bdf7a - _PyObject_VectorcallTstate
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                          - method_vectorcall
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                          33: 0x13bb30c - _PyVectorcall_Call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                          34: 0x13bb6ef - _PyObject_Call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                          35: 0x13bb789 - PyObject_Call
                          at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                          36: 0x181c9 - <unknown>!<wasm function 406>
                          37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                          38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                          39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                          

                          I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

                          Activity

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

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              fd_write crash on send_downstream() when updating to latest Viceroy #5

                              Description

                              @erikrose

                              I was hoping to update to the latest Viceroy WITs and get off the sunfishcode/sync-wit branch, but this happens when serving a request:

                              % make serve
                              rm -rf hello_compute
                              componentize-py -d wit -w compute bindings hello_compute
                              componentize-py -d wit -w compute componentize --stub-wasi app -o app.wasm
                              Component built successfully
                              viceroy --adapt app.wasm
                              2025-08-29T16:46:00.920215Z ERROR WebAssembly trapped: error while executing at wasm backtrace:
                              0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                              1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                              2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                              3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                              4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                              5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                              6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                              7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                              8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                              9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                              10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                              11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                              12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                              13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                              14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                              15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                              16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                              17: 0x185f3 - <unknown>!<wasm function 484>
                              18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                              19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                              20: 0x13bb483 - _PyObject_VectorcallTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                              - PyObject_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                              21: 0x14dbd2d - _PyEval_EvalFrameDefault
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                              22: 0x14ddfd4 - _PyEval_EvalFrame
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                              - _PyEval_Vector
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                              23: 0x13bb94d - _PyFunction_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                              24: 0x13babcb - _PyObject_FastCallDictTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                              25: 0x13bbc35 - _PyObject_Call_Prepend
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                              26: 0x143d0c9 - slot_tp_call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                              27: 0x13baac3 - _PyObject_MakeTpCall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                              28: 0x13bb46e - _PyObject_VectorcallTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                              - PyObject_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                              29: 0x14dbd2d - _PyEval_EvalFrameDefault
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                              30: 0x14ddfd4 - _PyEval_EvalFrame
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                              - _PyEval_Vector
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                              31: 0x13bb94d - _PyFunction_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                              32: 0x13bdf7a - _PyObject_VectorcallTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                              - method_vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                              33: 0x13bb30c - _PyVectorcall_Call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                              34: 0x13bb6ef - _PyObject_Call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                              35: 0x13bb789 - PyObject_Call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                              36: 0x181c9 - <unknown>!<wasm function 406>
                              37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                              38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                              39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                              Caused by:
                              wasm trap: wasm `unreachable` instruction executed
                              2025-08-29T16:46:00.922327Z ERROR There was an error handling the request error while executing at wasm backtrace:
                              0: 0x1143b98 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 28>
                              1: 0x28fd0c5 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
                              2: 0x1216612 - libcomponentize_py_runtime.so!wasi::lib_generated::fd_write::h16f1318d12ef7a07
                              3: 0x1207310 - libcomponentize_py_runtime.so!std::io::Write::write_all::hcae5d5a17ded01cf
                              4: 0x11ff50f - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9b174c565bf11cf0 (.llvm.10071916962893096014)
                              5: 0x11ff3c4 - libcomponentize_py_runtime.so!std::thread::current::try_with_current::hb3d871380377cf67
                              6: 0x120d9e2 - libcomponentize_py_runtime.so!std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h6f239d02db0f481d
                              7: 0x120c7aa - libcomponentize_py_runtime.so!std::panicking::default_hook::he8216edd979025aa
                              8: 0x120e1d3 - libcomponentize_py_runtime.so!std::panicking::rust_panic_with_hook::h02d894de16d94192
                              9: 0x11f9d92 - libcomponentize_py_runtime.so!std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::he125d401eefa4f33
                              10: 0x11f9cf3 - libcomponentize_py_runtime.so!std::sys::backtrace::__rust_end_short_backtrace::h31a9416a2c4ea1cb
                              11: 0x120db45 - libcomponentize_py_runtime.so!__rustc::rust_begin_unwind
                              12: 0x122f16e - libcomponentize_py_runtime.so!core::panicking::panic_fmt::h52dbee1629029330
                              13: 0x124e734 - libcomponentize_py_runtime.so!core::result::unwrap_failed::h68b1db2abd074508
                              14: 0x1186bf0 - libcomponentize_py_runtime.so!componentize-py#ToCanonString
                              15: 0x28e15c9 - libcomponentize_py_bindings.so!fastly:api/http-resp#header-append-import
                              16: 0x28e56d7 - libcomponentize_py_bindings.so!componentize-py#CallIndirect
                              17: 0x185f3 - <unknown>!<wasm function 484>
                              18: 0x118acc4 - libcomponentize_py_runtime.so!componentize_py_runtime::_$LT$impl$u20$componentize_py_runtime..call_import..MakeDef$GT$::_PYO3_DEF::trampoline::h88da0896868f0eed
                              19: 0x1417d72 - cfunction_vectorcall_FASTCALL_KEYWORDS
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:438:24
                              20: 0x13bb483 - _PyObject_VectorcallTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                              - PyObject_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                              21: 0x14dbd2d - _PyEval_EvalFrameDefault
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                              22: 0x14ddfd4 - _PyEval_EvalFrame
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                              - _PyEval_Vector
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                              23: 0x13bb94d - _PyFunction_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                              24: 0x13babcb - _PyObject_FastCallDictTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:133:15
                              25: 0x13bbc35 - _PyObject_Call_Prepend
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:508:24
                              26: 0x143d0c9 - slot_tp_call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/typeobject.c:8769:15
                              27: 0x13baac3 - _PyObject_MakeTpCall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:240:18
                              28: 0x13bb46e - _PyObject_VectorcallTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:90:16
                              - PyObject_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:325:12
                              29: 0x14dbd2d - _PyEval_EvalFrameDefault
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/Python/bytecodes.c:2706:19
                              30: 0x14ddfd4 - _PyEval_EvalFrame
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_ceval.h:89:16
                              - _PyEval_Vector
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/ceval.c:1683:12
                              31: 0x13bb94d - _PyFunction_Vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c
                              32: 0x13bdf7a - _PyObject_VectorcallTstate
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11
                              - method_vectorcall
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/classobject.c:91:18
                              33: 0x13bb30c - _PyVectorcall_Call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:271:16
                              34: 0x13bb6ef - _PyObject_Call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:354:16
                              35: 0x13bb789 - PyObject_Call
                              at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:379:12
                              36: 0x181c9 - <unknown>!<wasm function 406>
                              37: 0x118b45c - libcomponentize_py_runtime.so!pyo3::call::PyCallArgs::call_method_positional::hf0c9fd3e2a3bd359 (.llvm.11185300699313483585)
                              38: 0x11857ab - libcomponentize_py_runtime.so!componentize-py#Dispatch
                              39: 0x28e5648 - libcomponentize_py_bindings.so!fastly:api/reactor#serve-export
                              

                              I commented out chunks of app.py to reduce it, finally narrowing it down to send_downstream(). You can construct params to send_downstream() just fine, but actually calling it crashes. Perhaps it now calls fd_write() where it didn't before. Putting this aside for now.

                              Activity

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

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions