Starlight-JS / starlight

JS engine in Rust
https://teletype.in/@starlight-js
Mozilla Public License 2.0
511 stars 9 forks source link

Stack overflow #64

Open andrieshiemstra opened 3 years ago

andrieshiemstra commented 3 years ago

when using the current code i often get a stack overflow

at first i thought it was a problem with my async/promise code but when creating a new fork and just adding this test case i get a stack overflow 9 out 10 times

#[cfg(test)]
pub mod tests {

    use crate::options::Options;
    use crate::Platform;

    #[test]
    fn test_promise() {

        let mut options = Options::default();

        let mut starlight_runtime =
            Platform::new_runtime(options, None);

    }
}

gets me this:

thread 'vm::promise::tests::test_promise' has overflowed its stack
fatal runtime error: stack overflow
error: test failed, to rerun pass '-p starlight --lib'

Caused by:
  process didn't exit successfully: `/home/andries/github.com/HiRoFa/starlight/target/debug/deps/starlight-76883992e693299c 'vm::promise::tests::test_promise' --format=json --exact -Z unstable-options --show-output` (signal: 6, SIGABRT: process abort signal)

Process finished with exit code 101

I tested on openSUSE leap 15.3 and a pretty recent fedora on my laptop.. same results

i updated to the latest rust nightly, same result.. which nightly are you running?

jameslahm commented 3 years ago

@andrieshiemstra, I just test it and it works normally here on the latest dev branch.

cargo test test_promise
running 1 test
test vm::tests::test_promise ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 15 filtered out; finished in 0.07s

My rustc versions is rustc 1.55.0-nightly (e8cb1a4a5 2021-06-27)

playXE commented 3 years ago

Right now there are some problems running tests with just cargo test you at least need cargo test -- -test-threads 1 for it to work.