Recommendations for triaging AppHang errors #2715
Replies: 3 comments 5 replies
-
Thanks for this excellent summary of your problems with AppHangs, @CraigSiemens.
That is due to how our AppHang logic works. We enqueue an item to execute on the main threads loop and check if it doesn't get executed in a defined time we consider an app hang is ongoing. Getting the exact stacktrace works pretty well if the app is completely stuck, but if the run loop is extremely busy with different code locations, our logic might fire a bit too late and we give you a stacktrace that is not 100% correct. I think the proper solution would be some combination of AppHangs with profiling. So basically, if we detect too much work on the main thread, we start our profiler and link the profile to the AppHang event. Of course, you would have to pay for profiling in that scenario. Maybe we can also do something that works for errors only. We can also attach multiple stacktraces to the same event. I will discuss this with my team internally and get back to you. Thanks for the great input.
I think we shouldn't group them together, instead I think it would make sense that we hide these until they reach some kind of threshold. The product should do this for you. Again, I will bring this to my team and get back to you. Thanks again for the great input 👏 |
Beta Was this translation helpful? Give feedback.
-
App Hanging -[FlutterPlatformPlugin getClipboardData:]App hanging for at least 2000 ms.Happen in Every-Time App is resumed and asked for data from clipboard after copied some different text, the Is it possible the
|
Beta Was this translation helpful? Give feedback.
-
This post helped us track down the issue we were seeing regarding new "App Hanging" issues - see related comments in #3472 (comment) |
Beta Was this translation helpful? Give feedback.
-
After we updated to 8.0, we started getting a lot of app hang error. There were two error/traces that were logged for many users (100s) so we did some fixes to improve that. Unfortunately there were also 100s of unique traces that only one or two users encountered. That leads to a couple questions about the best way to think about and handle these.
I dove into Sentry's implantation and I would guess that for some users, the slow code ran in slightly under 2 seconds, but there was following work queued up on the main thread. Then when sentry detects the AppHangs, it reports a trace from some time after the slow code. Is this a correct understanding of how Sentry detects and reports the traces?
For all the AppHang errors in Sentry that each only have one or two users, would there be any harm in grouping them together? We mainly want to avoid the list getting filled up with one-off errors where the stack trace isn't particularly helpful.
This is probably more of a suggestion than a question, but would it be possible to auto-group the AppHang events together until the occurrences of a particular stack trace passes some threshold? Again, it's to try and keep the errors list manageable.
Beta Was this translation helpful? Give feedback.
All reactions