android / android/android-test

Orchestrator fails if service disconnects

Abierto
#396 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Java
Estrellas
1.2k
Forks
342
Merge medio
11 h 29 min
PR fusionados (30 d)
2

Descripción

Description

Our test suite has recently begun crashing without running all the tests.

From logcat, it looks like we are running into memory pressure and Android is killing the Orchestration Service.

The OrchestratedInstrumentationListener code does not trigger a reconnect to the service on disconnect, and this makes tests fail if the service is killed. Once the service is killed there is no way to recover. The code should be updated to rebind the service on an unbind.

In addition the service is not being bound with flag Service.BIND_IMPORTANT which would make the Orchestration Service less likely to be killed under memory pressure.

Steps to Reproduce

I have outlined steps to reproduce here:
https://issuetracker.google.com/issues/135574731

Note that you may have to add tests which consume memory to cause the service to be killed.

Expected Results

The orchestrator does not crash.

Actual Results

The orchestrator crashes and only a small subset of our tests are run.

AndroidX Test and Android OS Versions

AndroidX 1.2.0 - Tested on both 26 and 27.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con OrchestratedInstrumentationListener y el código de vinculación del servicio, y luego sigue los pasos de reproducción de issuetracker.google.com/issues/135574731 en AndroidX Test 1.2.0 con Android 26 o 27. Verifica el comportamiento cuando Android finaliza el Orchestration Service bajo presión de memoria; se considera terminado cuando el servicio se vuelve a vincular después de unbind, se vincula con Service.BIND_IMPORTANT y la suite de pruebas completa continúa ejecutándose.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
android, java
Área
mobile, testing-qa
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.