-
Notifications
You must be signed in to change notification settings - Fork 2.3k
The 1.14 Google Play mystery crash thread #16601
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
Comments
Hm, SetNoBlendAndMask would be the first opportunity for ApplyDrawState() to interact with a missing curRenderStep_ in a lot of cases. (VKRGraphicsPipeline::Create(VulkanContext*)+80) seems relatively early for the Vk calls in that func, but... if this isn't a driver bug it seems like it would either need to be a shutdown hazard or a pipeline cache lifetime issue, right? -[Unknown] |
Found a hang reported, where one of the threads were sitting here, very odd:
Wonder if we're just handling a fault over and over, or if this was just random.. |
Alright, so now after 1.14 there are some updates:
Strange
Wacky bad_alloc in draw buffer (likely just OOM?):
|
ReadFromZip:
Mic input (!)
JIT finalize block:
|
Hm, unless
Strange. Not sure if we end up in the "layered" case, but this is a read from assets even? That zip shouldn't be corrupt or anything... it should be a user zip.
Not sure much about the others. -[Unknown] |
Been using addr2line on some stack traces that didn't resolve in the UI, there's one in the texture replacer here:
Also made a bunch of fixes in #16683 |
The most common hang has the following as the only interesting stack trace:
This is the only other stack that had PPSSPP code in it:
which makes me think it's during shutdown or startup. |
The second most common hang is a Vulkan shutdown hang, with the following stack traces:
|
Another, I think, GL one:
|
Also unrelated, another TransformUnit one, but surely also OOM:
|
That's weird, -[Unknown] |
That is indeed a reported hang (ANR - application not responding), not a crash. No idea how it got in that situation.. |
Here's an oldie but goodie that have never fully gone away:
I'm considering throwing in an assert_msg so we can figure out which game it is happening in.. But surely it's from executing a bogus display list somehow. |
argh, looks like I caused a new kind of java exception:
trying to display an error message:
Oh well, at that point we're already screwed.. |
Also hit this one: (GLRenderManager.h:SetBlendAndMask:801) Critical: [curRenderStep_ && curRenderStep_->stepType == GLRStepType::RENDER] *** Assertion *** Seems the thing I added to include the game ID isn't working? darn. don't see how that's possible though? Maybe we hit a length limit? |
Got a few variants of these: I don't think Android normally asserts in this situation, might be a weird OS build. But, we are not handling thread detachment properly in all cases - getEnv() just attaches, and there's no mechanism to detach. This one we can't do much about, though we can handle it more gracefully:
A bit weird (32-bit):
|
That's expected, you need to uninstall to switch between APK and playstore due to mismatching signing keys. I currently don't know of a way to fix that. |
Here's one I haven't noticed before (as we stomp these out, I discover rarer crashes in the pile):
|
This should just be an OOM, right?
|
This one is actually interesting. I think we might be missing an IsFull and wipe check before we link/proxy blocks... |
|
here's one curious assert that we probably should try to avoid crashing on (omitting the callstack because uninteresting):
|
Are all the most common crashes captured here / potentially resolved? Should we close this for next time around? -[Unknown] |
Except for the OOMs which are hard to do much about, enough of it is taken care of for this time around, yeah. |
More than five years after I first requested it, the Google Play gods have finally answered my prayers and now display assert messages along with stack traces:
This means that we can now pass along information about which game was running when we hit an assert, and similar things!
Unfortunately they also made the stack trace UI incredibly slow. Oh well.
There are a whole bunch of OpenGL initialization crashes as usual, now collected better thanks to some asserts I added like that one, but I still think should probably avoid crashing, show a message and bail, or even automatically restart the activity. The few times I've been able to randomly repro these (almost entirely on very old devices), restarting the app helped.
Anyway, if they fix their server issues, I'll add some more mysterious ones here. I did see one in UninstallExceptionHandler but now I can't get it to display it again.
Hm, seems the UninstallExceptionHandler one is just some somewhat worrying memory corruption:
This surely must be some kind of shutdown bug? Unless there's some curRenderStep_ confusion (== 0 for some reason)...
Locking a destroyed mutex, seems like in a VK driver:
The text was updated successfully, but these errors were encountered: