fastn-stack / fastn

🚧 (Alpha stage software) fastn - better way to build websites 🚧
https://fastn.com
GNU Affero General Public License v3.0
468 stars 36 forks source link

Debug builds crash in certain cases #1786

Open siddhantk232 opened 8 months ago

siddhantk232 commented 8 months ago

fastn compiled in debug mode using cargo build crash in some cases.

thread 'actix-server worker 0' has overflowed its stack
fatal runtime error: stack overflow
fish: Job 1, 'fastn.dev serve --offline' terminated by signal SIGABRT (Abort)

This has happened before (#1067). The actual error is different this time. Here's the detailed error that I was able to extract using lldb:

Process 174307 stopped
* thread #11, name = 'actix-server wo', stop reason = signal SIGSEGV: address access protected (fault address: 0x7ffff632e2e8)
    frame #0: 0x0000555556d46c31 fastn.dev`ftd::interpreter::things::value::PropertyValue::value_from_ast_value::get_property_value::h3b124b38ea363346(value=<unavailable>, doc=0x00007ffff633ad08, is_mutable=false, expected_kind=0x0000000000000000, definition_name_with_arguments=0x0000000000000008, loop_object_name_and_kind=0x0000000000000000) at value.rs:734
   731              doc: &mut ftd::interpreter::TDoc,
   732              is_mutable: bool,
   733              expected_kind: &ftd::interpreter::KindData,
-> 734              definition_name_with_arguments: &mut Option<(&str, &mut [ftd::interpreter::Argument])>,
   735              loop_object_name_and_kind: &Option<(
   736                  String,
   737                  ftd::interpreter::Argument,
(lldb) continue
Process 174307 resuming

thread 'actix-server worker 0' has overflowed its stack
fatal runtime error: stack overflow
Process 174307 stopped
* thread #11, name = 'actix-server wo', stop reason = signal SIGABRT
    frame #0: 0x00007ffff77c4d7c libc.so.6`__pthread_kill_implementation + 268
libc.so.6`__pthread_kill_implementation:
->  0x7ffff77c4d7c <+268>: movl   %eax, %ebx
    0x7ffff77c4d7e <+270>: negl   %ebx
    0x7ffff77c4d80 <+272>: cmpl   $0xfffff000, %eax         ; imm = 0xFFFFF000
    0x7ffff77c4d85 <+277>: movl   $0x0, %eax

I was not able to learn more about the cause or how to fix it. I'll try again this weekend.