-
Notifications
You must be signed in to change notification settings - Fork 34
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
WSOD on Moto G power 2021 #1025
Comments
This is very weird because I tested on a Moto G Play 2021 and it works fine. Moto G Play
Moto G Power
This makes me wonder whether the issue is with the particular users' data |
One of my test phones is a Moto G Power 2021 and has had no issues with this release. If there's some kind of aberration in this user's data, maybe somewhere on the phone we make a faulty assumption about it. We should try the user's OPcode in a devapp |
Unable to reproduce in the devapp on either dev or prod JS. |
Now I am wondering if it is specific to this user's installation of the app. Maybe a bad value in local or native storage? |
@JGreenlee can you try with this opcode on your motorola G Power test phone? You can restore back to your regular opcode later. If you still can't reproduce, I will turn on the developer options on the user phone and try to get an OS level dump |
Everything still normal on my G Power with the user's OPcode |
I tried a couple of times to get the error from the bug report, but I don't see anything. screen-20231101-215808.mp4And in the logs, I see
I will try one more time to use logcat in real time |
Here are the final recording and logs. This time I ran However, I also don't think we have a lot of logs any more - we removed a lot of them during the rewrite since using debuggers is easier, but that makes it hard to find issues that are not reproducible in the debugger (I know I flagged this in a previous commit as a future fix, and maybe the time to fix that is now). There are exactly two log statements outside of
The last log that I can see is
video: https://github.com/e-mission/e-mission-docs/assets/2423263/9217dd46-d0d1-41a5-b8c5-16525af28fad |
@JGreenlee can we go through and bulk up on the diary logs - we want to see something on the order of the 20+ logs seen in the diary services... Then I can try to update on this phone and see what is going on. I suspect that a reinstall might fix it, but then we will never know what (if anything) caused this and won't be able to guard against it. |
@JGreenlee @Abby-Wheelis can one of you bulk up on the logs in the label screen (and potentially the dashboard screen), including making sure that every top level call is in a try/catch block? That should help us get a better handle on these intermittent WSODs Once those are added, I can push out a new release and see what the logs show. |
After seeing this, I wonder if the issue is with the cached config. This user installed the app a very long time ago, so they might have an old version of the config in the local storage. Maybe there's some backwards compat code that was removed during the rewrite? If this was the case, we should have displayed an error instead of just silently catching and ignoring it. Uploading logs internally... |
Also, it looks like we keep reloading data.
screen-20231111-164052.mp4The logs for this should be in the internal upload as well |
I also have an issue in which the logs are not getting shared properly to nextcloud. It did work with Google Drive, but it just returned immediately from nextcloud. @the-bay-kay, can you install nextcloud on your test android and check this out? |
I take this back, it just took a really long time to upload. It is there now. |
Uploaded
|
Something else I noticed is that there is no Dashboard tab, even though this user is supposed to be on open-access, which is a MULTILABEL configuration. We would expect the Dashboard to be hidden on non-MULTILABEL configurations. So I am fairly certain that the stored config for this user is missing the |
Here is the usercache entry of {
"version": 1,
"ts": 1655143472,
"server": {
"connectUrl": "https://open-access-openpath.nrel.gov/api/",
"aggregate_call_auth": "user_only"
},
"intro": {
"program_or_study": "study",
"program_admin_contact": "K. Shankari ([email protected])",
"deployment_partner_name": "National Renewable Energy Laboratory (NREL)",
"translated_text": {
"en": {
"deployment_name": "Open Access Study",
"summary_line_1": "enables people to track their travel modes and <b>measure</b> their associated energy use and emissions",
"summary_line_2": "makes <b>aggregated</b> data on mode shares, trip frequencies, and carbon footprints available via a public dashboard",
"summary_line_3": "serves as a <b>control group</b> while evaluating behavior change of programs.",
"short_textual_description": "Transportation is the largest contributor to US Greenhouse Gas GHG emissions. As the nation's premier facility for energy-efficient transportation R&D solutions, NREL’s sustainable transportation and mobility research takes a whole-system, human-centric approach to solve complex energy challenges and slash greenhouse gas emissions. As part of this approach we would like to collect long-term travel behavior data that tells us how, where and why people travel.",
"why_we_collect": "NREL can use this information to understand how travel patterns change in response to federal, state and local interventions. The interventions can include programs, incentives and infrastructure changes. Since this data will be collected for a long time, changes can be directly observed instead of inferred from other data sources. This data can also serve as a control of unmodified behavior for programs that target a small sample of the population."
},
"es": {
"deployment_name": "Estudio de acceso abierto",
"summary_line_1": "permite a las personas realizar un seguimiento de sus modos de viaje y <b>medir</b> su uso de energía y emisiones asociadas",
"summary_line_2": "hace que los datos <b>agregados</b> sobre modos compartidos, frecuencias de viaje y huellas de carbono estén disponibles a través de un tablero público",
"summary_line_3": "sirve como un <b>grupo de control</b> al evaluar el cambio de comportamiento de los programas",
"short_textual_description": "El transporte es el mayor contribuyente a las emisiones de gases de efecto invernadero de EE. UU. Como la principal instalación del país para soluciones de investigación y desarrollo de transporte eficiente en energía, la investigación de movilidad y transporte sostenible de NREL adopta un enfoque de sistema completo centrado en el ser humano para resolver desafíos energéticos complejos y reducir las emisiones de gases de efecto invernadero. Como parte de este enfoque, nos gustaría recopilar datos de comportamiento de viaje a largo plazo que nos digan cómo, dónde y por qué viaja la gente.",
"why_we_collect_es": "NREL puede usar esta información para comprender cómo cambian los patrones de viaje en respuesta a las intervenciones federales, estatales y locales. Las intervenciones pueden incluyen programas, incentivos y cambios de infraestructura. Dado que estos datos serán recopilarse durante mucho tiempo, los cambios se pueden observar directamente en lugar de inferido de otras fuentes de datos. Estos datos también pueden servir como control de comportamiento no modificado para programas que se dirigen a una pequeña muestra de la población."
}
}
},
"display_config": { "use_imperial": true },
"profile_controls": {
"support_upload": false,
"trip_end_notification": false
},
"name": "open-access",
"joined": {
"route": "join_study",
"label": "open-access",
"source": "github"
}
} It does not have |
We do have a backwards compat filler for this (https://github.com/e-mission/e-mission-phone/blob/922a62b7c2601f195bfe8df54654986135e99b25/www/js/config/dynamicConfig.ts#L33) but it is only applied when a config is being downloaded. If a config has already been stored with missing values (which is the case for this user because they have been using the app for a long time), the backwards compat is not doing anything. |
Potential ways to proceed: |
I don't think this was the cause of the WSOD because I didn't have a WSOD and I have been on NREL commute, which still doesn't have the The most recent update seems to have fixed the WSOD, although I am still not sure why and introduced this new issue. For this issue, we had implemented (a) before the rewrite (I knew I was careful about that): For now, we should restore it. The long-term pattern for such issues is to change the config on the server, potentially using e-mission/op-admin-dashboard#75. We can then handle stored configs through lazy migration in parallel. After sufficient time (say, one year), we can remove the migration code path on the phone. We can write that up as our config policy and include it into the config repo readme and/or the FAQ |
I think it's probable that this was the cause of the WSOD. If That line does not exist anymore in
Your installation doesn't currently show the same behavior as the aforementioned user, does it? You have probably logged out and back in at some point, causing the backwards compat to apply-- while for that user, it never did. |
A user recently reported a WSOD on a Moto G Power 2021 (see attached)
screen-20231031-220346.mp4
The text was updated successfully, but these errors were encountered: