Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upServo on Android doesn't terminate with the -x or -o flags #12304
Comments
|
Yes, I suspect that since all of the layout threads are panicing, we're unable to properly shut down and emit an output file. |
|
This problem still occurs even after the fix for #12303. It seems like Servo is trying to close down after the "Shutting down constellation..." message but is not able to communicate well with Android to do so without hanging up:
results in a blank screen (stalled) after getting the "Shutting down constellation.." message. Once I tap the screen, I get a thread panic. Here is the backtrace for that panic from ndk-gdb on the release version:
|
|
BTW, the out.png and out.tsv files are being generated on the device which tells me that Servo is shutting down internally but is not somehow not able to terminate its process on Android OS. |
|
It occurs to me that one, possibly much cleaner, way to do this is to instead use android instrumentation/testing: https://developer.android.com/studio/test/command-line.html So, the idea would be that we'd have another small java wrapper, say alongside this one: And like that one, it would call in to servo with the proper arguments. The difference here is that instead of what we do today (where we are doing a "start" of the application, which assumes the full app and event lifecycle), the unit test framework assumes that we are just executing a portion of code in the app and then exiting. This might also reduce many of the bits of instability we're encountering around startup/shutdown/eventing! |
On the laptop we can auto-terminate Servo after page-load using the
-xor-o out.pngflags.I'm not observing the same behavior with Servo on Android. Is this expected?
How to terminate the Servo app after page-load on Android?
Might be related to #12303