Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stack overflow detection failure #7482

Open
straight-shoota opened this issue Feb 26, 2019 · 0 comments
Open

Stack overflow detection failure #7482

straight-shoota opened this issue Feb 26, 2019 · 0 comments

Comments

@straight-shoota
Copy link
Member

#6928 added a cool feature which detects whether an invalid memory access is actually a stack overflow error.

However, this detection does not yet seem to work correctly in all cases.

On alpine edge the spec for SO detection on main stack fails:

  1) seg fault detects stack overflow on the main stack
     Failure/Error: error.should contain("Stack overflow")

       Expected:   "Invalid memory access (signal 11) at address 0xffffc59b7e30\n[0xaab6d0310cb8] *CallStack::print_backtrace:Int32 +100\n[0xaab6d03034d0] __crystal_sigfault_handler +208\n[0xfff785619964] __setjmp +56\n[0xaab6d03444c0] *Pointer(Hash::Entry(String, NamedTuple(time: Time, location: Time::Location)) | Nil) +136\n[0xaab6d0303530] *foo:NoReturn +48\n[0xaab6d0308fdc] *foo:NoReturn +23260 (1522 times)\n[0xaab6d02f9130] __crystal_main +2072\n[0xaab6d034690c] *Crystal::main_user_code<Int32, Pointer(Pointer(UInt8))>:Nil +8\n[0xaab6d0346864] *Crystal::main<Int32, Pointer(Pointer(UInt8))>:Int32 +40\n[0xaab6d02ffedc] main +8\n[0xfff7855ee734] ???\n"
       to include: "Stack overflow"

     # spec/std/kernel_spec.cr:249

The spec for SO detection on fiber stack passes, though.

There was a similar failure reported for Ubuntu 14.04 which doesn't seem to have been fixed (#6928 (comment)).

If this can't be fixed right away, a short term play would be to simply disable the spec on affected platforms. They're not essential.

/cc @damaxwell

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

No branches or pull requests

2 participants