-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
The new stacktrace printing is missing "repeated N times" info for some StackOverflows #37587
Comments
(Also, i did a make clean and git pull and rebuilt master and it's not segfaulting anymore, so i hope that was just a false alarm? Still missing the "repeated N times" info of course) julia> versioninfo()
Julia Version 1.6.0-DEV.917
Commit a0a68a54d6 (2020-09-14 20:06 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin19.6.0)
CPU: Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-9.0.1 (ORCJIT, skylake)
julia> foo() = foo()
foo (generic function with 1 method)
julia> foo()
ERROR: StackOverflowError:
Stacktrace:
[1] foo()
@ Main ./REPL[3]:1 |
(simplified the title) |
This bug is still present as of julia 1.6 alpha: julia> versioninfo()
Julia Version 1.6.0-DEV.1780
Commit de69b02a48* (2020-12-19 19:43 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin18.7.0)
CPU: Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.0 (ORCJIT, skylake)
julia> foo() = foo()
foo (generic function with 1 method)
julia> foo()
ERROR: StackOverflowError:
Stacktrace:
[1] foo()
@ Main ./REPL[2]:1 |
@c42f: I know that you've made a lot of awesome improvements to exception stack trace printing this release! :) Do you have any idea what might have broken this? Thanks! |
I've checked, and the cycle detection still worked as of 97e3fe8, so the breakage is somewhere between 97e3fe8 and a0a68a5.
EDIT: Okay, i've tracked down the failure to #36134. That's where it was introduced 👍 |
Great sleuthing Nathan! I can't take credit for the great aesthetic improvements, those were all @jkrumbiegel's design work. @jkrumbiegel do you have time to look at this? I'm pretty snowed under. |
@jkrumbiegel: any chance you have time to look at this? :) hopefully it's not too much work to resolve? |
Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes JuliaLang#37587.
Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes #37587.
Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes #37587.
Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes #37587. Co-authored-by: Nathan Daly <nhdaly@gmail.com> (cherry picked from commit 3276c11)
) Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes JuliaLang#37587. Co-authored-by: Nathan Daly <nhdaly@gmail.com>
) Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes JuliaLang#37587. Co-authored-by: Nathan Daly <nhdaly@gmail.com>
Fixes backtrace printing to display the number of times a frame is repeated, if there is a frame that's duplicated several times. ```julia julia> function foo() foo() end foo (generic function with 1 method) julia> foo() ERROR: StackOverflowError: Stacktrace: [1] foo() (repeats 79984 times) @ Main ./REPL[16]:1 ``` Fixes #37587. Co-authored-by: Nathan Daly <nhdaly@gmail.com> (cherry picked from commit 3276c11)
On 1.5:
On master:
With a real, more interesting stack, this makes it difficult to tell where the cycle is occurring!
Note that it does sometimes work, as shown in this example:
😮 And i tried pulling a later master and re-building to see if the problem is still there before filing an issue, but now it's segfaulting! 😮
When I ran inside LLDB it somehow didn't segfault, and indeed still suffers from the under-reporting of the repeated frames:
The text was updated successfully, but these errors were encountered: