-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
General crash and hang fixes #9698
Conversation
One of the top crashes reported in the Play Console is a ManagedTexture crash, so seeing if this might help.
…n on the background thread.
Ooh, found a fun deadlock between eventMutex_ in view.cpp and inputLock_ in screen.cpp, this is reported ~17 times/week, which isn't much though: DispatchEvent locks eventMutex and ScreenManager::push locks inputLock_:
vs ScreenManager:touch lock inputLock_ and EventTrigger locks eventMutex_:
|
I'm starting to think we should serialize touch events and similar and process them once per frame in the UI layer (we'll still immediately forward them to the emulation during gameplay)... Actually this one is just a missing lock in ScreenManager::update() - that fixes the lock ordering issue. |
…Mutex_ by locking here so the reverse lock order can't happen.
Here's one I don't know what to make of:
That's the only thread running (the GL thread). The main thread is paused but has Activity.pause() (java) in the callstack. |
This one is surprisingly common. I think people are somehow enabling the software renderer by accident... Still, don't see how it can crash.
|
…sier to turn it off if enabled by accident. Also warn if used and it runs slow.
Could you share a screenshot of the anpr stuff in the new console? I'm really interested in this as I naively thought it'd already be there |
@Sarkie crash reporting has been there forever, but ANR reporting is new (or maybe just greatly improved). Here: When you drill down you get graphs, stack traces and stuff. |
I'm finding a lot more variations on the deadlock above, should be fixed with that change though. Guess it's time for 1.4.1.... |
@hrydgard yeah I just assumed ANPRs were there as I as get them the most, especially on old devices and wondered why developers never fixed them, as I assume they run their apps with the best hardware, the ANPRs don't appear. So this is great news. |
The travis fails seems to be a bad mac buildbot.... Oh yeah, it did have some ANR reporting before but it's definitely been improved, and made more visible which might be even more important because I had never noticed it :) |
…n interacting with the queue. Might fix further deadlocks (see #9698)
@Sarkie I'll fix. Here's more details about the new stuff in the Play Console, about 10 minutes in: https://events.google.com/io/schedule/?section=may-17&sid=a3bec051-b37b-4bca-a3bf-1a45a7e9bba2 |
@hrydgard Thanks for the link, can't believe they only just added this! |
Hm, that BATTERY_LOW one is odd. The ManagedTexture ones aren't shutdown, though, are they? I mean, GameInfo should only destruct on shutdown, so we can see in the stack trace if that will help (not saying it's a bad change either way.) I wonder if the software rendering is some game that has or had corruption. Possible that it may even be improved now versus v1.4.0, but who knows. -[Unknown] |
The Play console gained improved crash and ANR (application not responding) reporting, I'm going through them and finding some issues.
The top crashes is ManagedTexture related, and that means it's likely related to the GameInfoCache, so I've made some reliability improvements to that.