-
Notifications
You must be signed in to change notification settings - Fork 327
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
GAPIT trace sometimes fails ApplicationLoaders.GetClassLoader #1116
Comments
|
Things that jump out to me (not knowing about the GAPII code at all) are:
|
Things that it could be:
|
Hi, I'm having the same issue with the latest release. Getting stuck on "Waiting for ApplicationLoaders.getClassLoader()". Any ideas and I'm using a Vivo phone. Would you recommend trying another phone? Also what are the trace commands I should be using to capture everything I need to debug opengles 3.2 offscreen fbo black screen issues. Thanks. Here is my session info: ./gapit.exe trace -android-package com.eecolor.sRBGSimulatorForDCIP3Display -android-at |
Hi @tombondee, thank you for reporting this. @baldwinn860 - please can you see if #1225 has fixed this problem? |
@tombondee The command line you are using is suspicious. --android-attach is supposed to be used to attach to a running process which is probably not what you want. It has very specific use cases like tracing CTS tests. Can you try just "./gapit.exe trace sRBGSimulatorForDCIP3Display"? |
It seems #1225 has not fixed this issue yet. The latest test on robot, taken after this change, still reproduces the problem. |
I suspect this might have been fixed by 4e24571. |
This is still happening after 4e24571. |
So I have a theory to what's happening here. Let's go through the events of
So - my theory is that the thread that calls To test this theory we could simply print the thread ID that each of these functions were called on: getClassLoader, err := waitForVulkanLoad(ctx, conn)
log.I(ctx, "getClassLoader was called on thread %v", getClassLoader.Thread)
...
onCreate, err := waitForOnCreate(ctx, conn, classLoaderThread)
log.I(ctx, "onCreate was called on thread %v", onCreate.Thread) My guess is that on the devices that have this issue, these two threads are typically different. @baldwinn860 - I'd be interested to know what this log lines say for your troublesome devices. |
I would be surprised if there's more than one thread, though, if I recall correctly, when registering the event, you can ask the JVM to suspend all threads when the event is hit. We could try that and see if it fixes it. BTW, |
Add flag to print device logcat. Print message if JDWP fails to connect. These changes are to try to identify the cause of google#1116.
Add flag to print device logcat. Print message if JDWP fails to connect. These changes are to try to identify the cause of #1116.
We concluded that this was a screen-configuration change issue, where apps was being restarted by the OS. |
Fix segfault in validation failures, fix case where validation sometimes always passes
Seeing this in Robot, there are a few instances (it seems to be random) where gapit is waiting for
ApplicationLoaders.getClassLoader()
but never moves on from it, leaving the trace to run forever. Typically afterwards gapit will wait forApplication.onCreate()
but that never happens. The application has already started on the device, and so it just runs infinitely.Sample failing gapit log:
I used SIGKILL to terminate the process, so I didn't get the stack trace. Next time I see the issue I will be sure to use SIGABRT instead.
The text was updated successfully, but these errors were encountered: