ladybird icon indicating copy to clipboard operation
ladybird copied to clipboard

Yandex crashes ladybird

Open shlyakpavel opened this issue 1 year ago • 12 comments

Summary

When I open yandex.ru with Ladybird, the app crashes.

Operating system

macOS

Steps to reproduce

  1. Open Ladybird
  2. Navigate to yandex.ru
  3. Wait 30s for it to crash

Expected behavior

It doesn't crash

Actual behavior

It crashes

URL for a reduced test case

N/A

HTML/SVG/etc. source for a reduced test case

N/A

Log output and (if possible) backtrace

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=1, subcode=0x100f51e58)
  * frame #0: 0x0000000100f51e58 liblagom-ak.0.0.0.dylib`::ak_verification_failed() at Assertions.cpp:102:5 [opt]
    frame #1: 0x00000001027e4868 liblagom-web.0.0.0.dylib`::update_the_navigation_api_entries_for_a_same_document_navigation() [inlined] current_entry at Navigation.cpp:120:5 [opt]
    frame #2: 0x00000001027e485c liblagom-web.0.0.0.dylib`::update_the_navigation_api_entries_for_a_same_document_navigation() at Navigation.cpp:0 [opt]
    frame #3: 0x00000001027d6178 liblagom-web.0.0.0.dylib`::navigate_to_a_fragment() at Navigable.cpp:1562:17 [opt]
    frame #4: 0x00000001027d5680 liblagom-web.0.0.0.dylib`::navigate() at Navigable.cpp:1326:9 [opt]
    frame #5: 0x00000001027c50fc liblagom-web.0.0.0.dylib`::navigate() at Location.cpp:78:5 [opt]
    frame #6: 0x00000001027c88f0 liblagom-web.0.0.0.dylib`::set_hash() at Location.cpp:404:5 [opt]
    frame #7: 0x0000000102f012b0 liblagom-web.0.0.0.dylib`::hash_setter() [inlined] operator() at LocationPrototype.cpp:402:5 [opt]
    frame #8: 0x0000000102f012a0 liblagom-web.0.0.0.dylib`::hash_setter() [inlined] throw_dom_exception_if_needed<(lambda at /Users/pavel/Develop/ladybird/Build/release/Lagom/Libraries/LibWeb/Bindings/LocationPrototype.cpp:402:5), Web::WebIDL::ExceptionOr<void>, JS::Value> at ExceptionOrUtils.h:97:25 [opt]
    frame #9: 0x0000000102f012a0 liblagom-web.0.0.0.dylib`::hash_setter() at LocationPrototype.cpp:402:5 [opt]
    frame #10: 0x00000001011e6c80 liblagom-js.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #11: 0x00000001013964dc liblagom-js.0.0.0.dylib`::internal_call() at NativeFunction.cpp:166:19 [opt]
    frame #12: 0x000000010139f380 liblagom-js.0.0.0.dylib`::ordinary_set_with_own_descriptor() [inlined] call<JS::Value &> at AbstractOperations.h:115:16 [opt]
    frame #13: 0x000000010139f364 liblagom-js.0.0.0.dylib`::ordinary_set_with_own_descriptor() at Object.cpp:1042:11 [opt]
    frame #14: 0x000000010139f040 liblagom-js.0.0.0.dylib`::internal_set() at Object.cpp:949:12 [opt]
    frame #15: 0x000000010139f3cc liblagom-js.0.0.0.dylib`::ordinary_set_with_own_descriptor() at Object.cpp:968:20 [opt]
    frame #16: 0x000000010139f040 liblagom-js.0.0.0.dylib`::internal_set() at Object.cpp:949:12 [opt]
    frame #17: 0x0000000101253608 liblagom-js.0.0.0.dylib`::put_by_property_key() at Interpreter.cpp:1207:26 [opt]
    frame #18: 0x000000010123697c liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2463:5 [opt]
    frame #19: 0x0000000101236864 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:650:13 [opt]
    frame #20: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #21: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #22: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #23: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #24: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #25: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #26: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #27: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #28: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #29: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #30: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #31: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #32: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #33: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #34: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #35: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #36: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #37: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #38: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #39: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #40: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #41: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #42: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #43: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #44: 0x000000010133253c liblagom-js.0.0.0.dylib`::call() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #45: 0x0000000101332534 liblagom-js.0.0.0.dylib`::call() at FunctionPrototype.cpp:135:12 [opt]
    frame #46: 0x00000001011e6c80 liblagom-js.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #47: 0x00000001013964dc liblagom-js.0.0.0.dylib`::internal_call() at NativeFunction.cpp:166:19 [opt]
    frame #48: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #49: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #50: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #51: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #52: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #53: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #54: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #55: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #56: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #57: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #58: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #59: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #60: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #61: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #62: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #63: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #64: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #65: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #66: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #67: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #68: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #69: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #70: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #71: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #72: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #73: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #74: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #75: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #76: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #77: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #78: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #79: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #80: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #81: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #82: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #83: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #84: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #85: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #86: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #87: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #88: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #89: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #90: 0x00000001013b5590 liblagom-js.0.0.0.dylib`::construct() [inlined] call<GC::Ref<JS::FunctionObject> &, GC::Ref<JS::FunctionObject> &> at AbstractOperations.h:115:16 [opt]
    frame #91: 0x00000001013b554c liblagom-js.0.0.0.dylib`::construct() at PromiseConstructor.cpp:280:23 [opt]
    frame #92: 0x0000000101396730 liblagom-js.0.0.0.dylib`::internal_construct() at NativeFunction.cpp:225:19 [opt]
    frame #93: 0x0000000101253cb0 liblagom-js.0.0.0.dylib`::perform_call() [inlined] construct at AbstractOperations.h:136:12 [opt]
    frame #94: 0x0000000101253c98 liblagom-js.0.0.0.dylib`::perform_call() at Interpreter.cpp:1246:24 [opt]
    frame #95: 0x0000000101230764 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2598:28 [opt]
    frame #96: 0x00000001012306ac liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:577:13 [opt]
    frame #97: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #98: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #99: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #100: 0x0000000101331f9c liblagom-js.0.0.0.dylib`::apply() [inlined] call at AbstractOperations.h:106:12 [opt]
    frame #101: 0x0000000101331f8c liblagom-js.0.0.0.dylib`::apply() at FunctionPrototype.cpp:79:12 [opt]
    frame #102: 0x00000001011e6c80 liblagom-js.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #103: 0x00000001013964dc liblagom-js.0.0.0.dylib`::internal_call() at NativeFunction.cpp:166:19 [opt]
    frame #104: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #105: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #106: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #107: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #108: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #109: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #110: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #111: 0x0000000101331f9c liblagom-js.0.0.0.dylib`::apply() [inlined] call at AbstractOperations.h:106:12 [opt]
    frame #112: 0x0000000101331f8c liblagom-js.0.0.0.dylib`::apply() at FunctionPrototype.cpp:79:12 [opt]
    frame #113: 0x00000001011e6c80 liblagom-js.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #114: 0x00000001013964dc liblagom-js.0.0.0.dylib`::internal_call() at NativeFunction.cpp:166:19 [opt]
    frame #115: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #116: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #117: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #118: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #119: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #120: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #121: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #122: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #123: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #124: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #125: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #126: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #127: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #128: 0x000000010131fb8c liblagom-js.0.0.0.dylib`::internal_construct() at ECMAScriptFunctionObject.cpp:500:19 [opt]
    frame #129: 0x0000000101253cb0 liblagom-js.0.0.0.dylib`::perform_call() [inlined] construct at AbstractOperations.h:136:12 [opt]
    frame #130: 0x0000000101253c98 liblagom-js.0.0.0.dylib`::perform_call() at Interpreter.cpp:1246:24 [opt]
    frame #131: 0x0000000101230764 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2598:28 [opt]
    frame #132: 0x00000001012306ac liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:577:13 [opt]
    frame #133: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #134: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #135: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #136: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #137: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #138: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #139: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #140: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #141: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #142: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #143: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #144: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #145: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #146: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #147: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #148: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #149: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #150: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #151: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #152: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #153: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #154: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #155: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #156: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #157: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #158: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #159: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #160: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #161: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #162: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #163: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #164: 0x000000010133253c liblagom-js.0.0.0.dylib`::call() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #165: 0x0000000101332534 liblagom-js.0.0.0.dylib`::call() at FunctionPrototype.cpp:135:12 [opt]
    frame #166: 0x00000001011e6c80 liblagom-js.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #167: 0x00000001013964dc liblagom-js.0.0.0.dylib`::internal_call() at NativeFunction.cpp:166:19 [opt]
    frame #168: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #169: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #170: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #171: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #172: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #173: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #174: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #175: 0x00000001012bd364 liblagom-js.0.0.0.dylib`::call_impl() at AbstractOperations.cpp:61:35 [opt]
    frame #176: 0x00000001013004ac liblagom-js.0.0.0.dylib`::internal_call() [inlined] call at AbstractOperations.h:84:12 [opt]
    frame #177: 0x00000001013004a0 liblagom-js.0.0.0.dylib`::internal_call() at BoundFunction.cpp:68:12 [opt]
    frame #178: 0x00000001013b5590 liblagom-js.0.0.0.dylib`::construct() [inlined] call<GC::Ref<JS::FunctionObject> &, GC::Ref<JS::FunctionObject> &> at AbstractOperations.h:115:16 [opt]
    frame #179: 0x00000001013b554c liblagom-js.0.0.0.dylib`::construct() at PromiseConstructor.cpp:280:23 [opt]
    frame #180: 0x0000000101396730 liblagom-js.0.0.0.dylib`::internal_construct() at NativeFunction.cpp:225:19 [opt]
    frame #181: 0x0000000101253cb0 liblagom-js.0.0.0.dylib`::perform_call() [inlined] construct at AbstractOperations.h:136:12 [opt]
    frame #182: 0x0000000101253c98 liblagom-js.0.0.0.dylib`::perform_call() at Interpreter.cpp:1246:24 [opt]
    frame #183: 0x0000000101230764 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2598:28 [opt]
    frame #184: 0x00000001012306ac liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:577:13 [opt]
    frame #185: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #186: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #187: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #188: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #189: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #190: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #191: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #192: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #193: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #194: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #195: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #196: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #197: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #198: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #199: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #200: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #201: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #202: 0x00000001012301e4 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #203: 0x00000001012301d0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] perform_call at Interpreter.cpp:1244:24 [opt]
    frame #204: 0x00000001012301c0 liblagom-js.0.0.0.dylib`::run_bytecode() [inlined] execute_impl at Interpreter.cpp:2585:28 [opt]
    frame #205: 0x0000000101230114 liblagom-js.0.0.0.dylib`::run_bytecode() at Interpreter.cpp:575:13 [opt]
    frame #206: 0x000000010122dc4c liblagom-js.0.0.0.dylib`::run_executable() at Interpreter.cpp:739:5 [opt]
    frame #207: 0x000000010131f748 liblagom-js.0.0.0.dylib`::ordinary_call_evaluate_body() at ECMAScriptFunctionObject.cpp:836:55 [opt]
    frame #208: 0x000000010131f028 liblagom-js.0.0.0.dylib`::internal_call() at ECMAScriptFunctionObject.cpp:421:19 [opt]
    frame #209: 0x00000001024e0068 liblagom-web.0.0.0.dylib`::call() [inlined] call at AbstractOperations.h:101:12 [opt]
    frame #210: 0x00000001024e0058 liblagom-web.0.0.0.dylib`::call() [inlined] operator() at MainThreadVM.cpp:229:23 [opt]
    frame #211: 0x00000001024e0000 liblagom-web.0.0.0.dylib`::call() at Function.h:187:20 [opt]
    frame #212: 0x00000001011e6c80 liblagom-js.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #213: 0x00000001013b7564 liblagom-js.0.0.0.dylib`::call() [inlined] run_reaction_job at PromiseJobs.cpp:55:26 [opt]
    frame #214: 0x00000001013b7544 liblagom-js.0.0.0.dylib`::call() [inlined] operator() at PromiseJobs.cpp:94:16 [opt]
    frame #215: 0x00000001013b7538 liblagom-js.0.0.0.dylib`::call() at Function.h:187:20 [opt]
    frame #216: 0x00000001024e086c liblagom-web.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #217: 0x00000001024e0720 liblagom-web.0.0.0.dylib`::call() [inlined] operator() at MainThreadVM.cpp:319:27 [opt]
    frame #218: 0x00000001024e06a0 liblagom-web.0.0.0.dylib`::call() at Function.h:187:20 [opt]
    frame #219: 0x00000001024bc1a0 liblagom-web.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #220: 0x0000000102741d20 liblagom-web.0.0.0.dylib`::perform_a_microtask_checkpoint() at EventLoop.cpp:494:27 [opt]
    frame #221: 0x000000010282acf4 liblagom-web.0.0.0.dylib`::~TemporaryExecutionContext() [inlined] ~TemporaryExecutionContext at TemporaryExecutionContext.cpp:23:5 [opt]
    frame #222: 0x000000010282acec liblagom-web.0.0.0.dylib`::~TemporaryExecutionContext() at TemporaryExecutionContext.cpp:22:1 [opt]
    frame #223: 0x0000000102867054 liblagom-web.0.0.0.dylib`::call() [inlined] operator() at WindowOrWorkerGlobalScope.cpp:344:9 [opt]
    frame #224: 0x0000000102867020 liblagom-web.0.0.0.dylib`::call() at Function.h:187:20 [opt]
    frame #225: 0x00000001024bc1a0 liblagom-web.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #226: 0x000000010274208c liblagom-web.0.0.0.dylib`::process() at EventLoop.cpp:177:22 [opt]
    frame #227: 0x00000001024bc1a0 liblagom-web.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #228: 0x0000000100cb30f0 liblagom-core.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #229: 0x0000000100cb26c8 liblagom-core.0.0.0.dylib`::dispatch_event() at EventReceiver.cpp:162:17 [opt]
    frame #230: 0x0000000100cc1728 liblagom-core.0.0.0.dylib`::process() at ThreadEventQueue.cpp:121:23 [opt]
    frame #231: 0x0000000100cb0584 liblagom-core.0.0.0.dylib`::spin_until() [inlined] pump at EventLoop.cpp:100:20 [opt]
    frame #232: 0x0000000100cb056c liblagom-core.0.0.0.dylib`::spin_until() at EventLoop.cpp:95:9 [opt]
    frame #233: 0x0000000102940960 liblagom-web.0.0.0.dylib`::spin_until() at EventLoopPluginSerenity.cpp:19:32 [opt]
    frame #234: 0x0000000102741c48 liblagom-web.0.0.0.dylib`::spin_until() at EventLoop.cpp:95:38 [opt]
    frame #235: 0x00000001027d3c18 liblagom-web.0.0.0.dylib`::create_navigation_params_by_fetching() at Navigable.cpp:886:40 [opt]
    frame #236: 0x00000001027d2038 liblagom-web.0.0.0.dylib`::populate_session_history_entry_document() at Navigable.cpp:1104:33 [opt]
    frame #237: 0x00000001027dc1d4 liblagom-web.0.0.0.dylib`::call() [inlined] operator() at Navigable.cpp:1476:9 [opt]
    frame #238: 0x00000001027dbae4 liblagom-web.0.0.0.dylib`::call() at Function.h:187:20 [opt]
    frame #239: 0x00000001024bc1a0 liblagom-web.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #240: 0x0000000100cb30f0 liblagom-core.0.0.0.dylib`::operator()() at Function.h:120:25 [opt]
    frame #241: 0x0000000100cc16e0 liblagom-core.0.0.0.dylib`::process() at ThreadEventQueue.cpp:118:13 [opt]
    frame #242: 0x0000000100cc3948 liblagom-core.0.0.0.dylib`::exec() [inlined] pump at EventLoopImplementationUnix.cpp:324:40 [opt]
    frame #243: 0x0000000100cc3934 liblagom-core.0.0.0.dylib`::exec() at EventLoopImplementationUnix.cpp:316:9 [opt]
    frame #244: 0x0000000100cb0424 liblagom-core.0.0.0.dylib`::exec() at EventLoop.cpp:88:20 [opt]
    frame #245: 0x000000010072d578 WebContent`::serenity_main() at main.cpp:208:23 [opt]
    frame #246: 0x00000001007c510c WebContent`main at Main.cpp:39:19 [opt]
    frame #247: 0x00000001896b4274 dyld`start + 2840

Screenshots or screen recordings

No response

Build flags or config settings

No response

Contribute a patch?

  • [ ] I’ll contribute a patch for this myself.

shlyakpavel avatar Nov 18 '24 17:11 shlyakpavel

I cannot reproduce this in 74b27d620d

diegoiast avatar Nov 20 '24 11:11 diegoiast

@diegoiast wait I'm going to recheck. It's possible that the site content has changed, or they provide different versions of the page to different GEOs

shlyakpavel avatar Nov 20 '24 11:11 shlyakpavel

It still crashes for me on 74b27d620daa80f94e67e6a76a83149c7266c710

shlyakpavel avatar Nov 20 '24 12:11 shlyakpavel

I tried to replicate this. For my GEO, I get redirected to dzen.ru/?yredirect=true, when the page finishes loading, Ladybird freezes with the "spinning beachball" cursor effect, but doesn't crash. While frozen, a process called "RequestServer" pegs a single core of my machine to 100%.

I'm on macOS 15.1.1 (24B91), Ladybird is build with the latest git commit available at the moment (f638f84). I build Ladybird with CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ BUILD_PRESET=Debug ./Meta/ladybird.sh run ladybird.

I attached a sample of the RequestServer process taken with Activity Monitor while the application hangs.

AtmosphericIgnition avatar Nov 20 '24 18:11 AtmosphericIgnition

I asked ChatGPT to extract what they do with location in JavaScript and that actually crashed Ladybird

<script>
    document.addEventListener("DOMContentLoaded", () => {
        try {
            console.log("Starting navigation tests...");

            // Rapid hash changes
            window.location.hash = "step1";
            window.location.hash = "step2";
            window.location.hash = "step3";

            // History manipulation
            history.pushState({ step: 4 }, "Step 4", "#step4");
            history.replaceState({ step: 5 }, "Step 5", "#step5");

            // Navigating back and forth in history
            setTimeout(() => history.back(), 100);
            setTimeout(() => history.forward(), 200);

            // Programmatic hash navigation interleaved
            setTimeout(() => (window.location.hash = "step6"), 300);
            setTimeout(() => (window.location.hash = "step7"), 400);

            // Multiple hash updates with longer delays
            setTimeout(() => (window.location.hash = "step8"), 500);
            setTimeout(() => (window.location.hash = "step9"), 1000);

            console.log("Navigation tests completed.");
        } catch (error) {
            console.error("Error during navigation tests:", error);
        }
    });
</script>

shlyakpavel avatar Nov 25 '24 17:11 shlyakpavel

@AtmosphericIgnition how does the HTML above work for you?

shlyakpavel avatar Nov 25 '24 17:11 shlyakpavel

Minimal repro:

<script>
    window.location.hash = "step1";
    window.location.hash = "step2";
    setTimeout(() => history.back(), 100);
</script>

shlyakpavel avatar Nov 25 '24 17:11 shlyakpavel

Some notes here:

  1. the history.back() call don't have to be in a timeout: location.hash = "1";location.hash = '2';history.back() works.
  2. the browser back button also causes the same effect, so loading this HTML page, then pressing <- button would crash. :
<script>
  location.hash = "1"
  location.hash = '2'
</script>
  1. this works also if two calls to set location.search , but not if one set hash and one set search

matan-h avatar Dec 16 '24 18:12 matan-h

Current status on linux as of https://github.com/LadybirdBrowser/ladybird/commit/9adf27f0099a2761f3f195f30a43561eb6edfc8d

Yandex.ru no longer crashes immediately

Image

Issues noticed with the page, the search bar, the yellow search button, and the keyboard button are the only clickable items. The search "works" but for me gets stuck on a captcha which is not clickable

Image

The button which redirects to a page with an onscreen keyboard (https://ya.ru/?open_keyboard=1) crashes instantly with the logs 130400.028 WebContent(552422): Content Security Policy violation: Refusing access to resource 'https://ya.ru/?open_keyboard=1' because it does not appear in the 'connect-src' directive.

The back button crash could be the same as #3958 ?

LiamillionSS avatar Sep 02 '25 21:09 LiamillionSS

Than you can close it. IMHO, this project is not yet in the "lets report a borken site" stage. Things are barely working as it is, and I think this just makes noise on developer's inbox.

The day will come eventually, just not today.

diegoiast avatar Sep 03 '25 17:09 diegoiast

Than you can close it. IMHO, this project is not yet in the "lets report a borken site" stage. Things are barely working as it is, and I think this just makes noise on developer's inbox.

The day will come eventually, just not today.

Please leave this kind of assesment of issues to the maintainers.

If the original crash was resolved, it might make sense to close this and open a new issue for any follow-up bugs!

gmta avatar Sep 03 '25 17:09 gmta

Repro at https://github.com/LadybirdBrowser/ladybird/issues/2425#issuecomment-2546375953 doesn't crash here for me, but my original repro at https://github.com/LadybirdBrowser/ladybird/issues/2425#issuecomment-2498662219 still crashes

shlyakpavel avatar Nov 09 '25 09:11 shlyakpavel