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

Deduplicate Stackframes #3956

Open
Dav1dde opened this issue Aug 28, 2024 · 1 comment
Open

Deduplicate Stackframes #3956

Dav1dde opened this issue Aug 28, 2024 · 1 comment
Labels
filler Requires little effort to resolve. Ready to be picked up anytime.

Comments

@Dav1dde
Copy link
Member

Dav1dde commented Aug 28, 2024

The trimming of stacktraces is currently relatively dumb, it cuts down the total amount of stack frames to 250 then afterwards tries to trim non app frames from the remaining frames until there are 50 frames left.

We can make the trimming smarter by trying to prioritize removing duplicate frames. We probably should keep a few of the duplicates not remove all or communicate in the event metadata that there were duplicate frames removed, to show the user that there were indeed duplicates.

This would help a lot for recursions.

Note duplicate detections does need to be aware of cycles, for example a recursion stack trace could look something like: x -> a -> a -> a -> a -> a but also like x -> a -> b -> c -> a -> b -> c -> a -> b -> c.

See also: #3905

@jjbayer jjbayer added the filler Requires little effort to resolve. Ready to be picked up anytime. label Sep 2, 2024
@tobias-wilfert
Copy link
Member

Assuming we would transform x -> a -> a -> a -> a -> a into something like x -> (a)* and x -> a -> b -> c -> a -> b -> c -> a -> b -> c into something like x -> (a -> b -> c)* would we want to transform x -> a -> b -> b -> a -> b -> b into x -> a -> (b)* -> a -> (b)* or rather x -> (a -> b -> b)*?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
filler Requires little effort to resolve. Ready to be picked up anytime.
Projects
None yet
Development

No branches or pull requests

3 participants