{"record":{"id":"99578b424af94fc2","repo":"windmill-labs/windmill","slug":"oh-no-99578b","errorCode":null,"errorMessage":"oh no","messagePattern":"oh no","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/parsers/windmill-parser-ruby/src/wasm_libc.rs","lineNumber":292,"sourceCode":"    _args: ...\n) -> c_int {\n    panic!(\"vsnprintf is not supported\");\n}\n\n#[no_mangle]\npub extern \"C\" fn clock_gettime(ptr: usize, new_size: usize) {\n    panic!(\"clock_gettime is not supported\");\n}\n\n// int snprintf( char* restrict buffer, size_t bufsz, const char* restrict format, ... );\n#[no_mangle]\npub extern \"C\" fn snprintf() {\n    panic!(\"snprintf is not supported\");\n}\n\n#[no_mangle]\npub extern \"C\" fn __assert_fail(_: *const i32, _: *const i32, _: *const i32, _: *const i32) {\n    panic!(\"oh no\");\n}\n","sourceCodeStart":274,"sourceCodeEnd":294,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/backend/parsers/windmill-parser-ruby/src/wasm_libc.rs#L274-L294","documentation":"`__assert_fail` is the libc function invoked when a C `assert()` fails. In the WASM Ruby parser it is stubbed to panic with the message \"oh no\", meaning a C-level assertion inside the VM or a linked native extension has failed. Unlike the other stubs this indicates a genuine assertion failure, not merely an unimplemented API.","triggerScenarios":"A C assertion fails inside code running in the wasm Ruby VM, routing to the exported `__assert_fail` shim.","commonSituations":"Buggy or misused C-extension gem asserting on invalid input while the parser executes; VM internals asserting invariants under unusual scripts.","solutions":["Identify which native extension/gem is asserting and fix or remove the offending input","Simplify the Ruby code being parsed to avoid the asserted path","Upgrade the gem/VM; the assertion indicates a violated precondition in native code"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"match std::panic::catch_unwind(|| parse_ruby(source)) {\n    Ok(res) => res,\n    Err(e) => {\n        // 'oh no' = a native assert() failed inside the VM; report the offending script/gem\n        report_native_assertion(source, e);\n        Err(\"native assertion failure in ruby parser sandbox\".into())\n    }\n}","preventionTips":["Fuzz-test new gems against the wasm parser before production use","Isolate parsing per-request so an assertion abort cannot poison shared state","Keep the Ruby VM and native gems updated to reduce internal assertion failures"],"tags":["wasm","ruby","assertion","libc"],"backgroundTag":"c-assertion-failure","analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}