[Android] OOM Issue - Out of memory issue : 'JNI ERROR (app bug): global reference table overflow (max=51200)global reference table dump
Los mantenedores suelen responder en 5 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- android, cpp
- Área
- mobile-dev
Línea de trabajo
Comienza con lib/http/HttpClient_Android.cpp y el punto de entrada SendRequestAsync mencionado en el informe; inspecciona el ciclo de vida de las referencias JNI creadas para callbacks asíncronos. Usa los registros de crash adjuntos y la carga de trabajo de telemetría reportada para rastrear si las referencias permanecen después de la finalización. Se considera terminado cuando el desbordamiento ya no se puede reproducir y el ciclo de vida de las referencias está cubierto por una validación adecuada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe your environment. Describe any aspect of your environment relevant to the problem, including your SDK version, platform, OS version, etc. If you're reporting a problem with a specific version of a library in this repo, please check whether the problem has been fixed on main brach.
Latest OneDS Android SDK
I am encountering a OOM issue consistently due to the below reason.
10-08 07:25:25.793 15234 15234 F DEBUG : Abort message: 'JNI ERROR (app bug): global reference table overflow (max=51200)global reference table dump:
Looks like the global reference limit is reached. I am suspecting some memory leaks. I could find a android related file
https://github.com/microsoft/cpp_client_telemetry/blob/main/lib/http/HttpClient_Android.cpp
Not a cpp expert. Could you help in checking some possibility where the global references are not released.
Logs can be found in this bug
https://domoreexp.visualstudio.com/MSTeams/_workitems/edit/4865741
Stacktrace:
10-08 07:25:25.015 11797 15029 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 15029 (Pool-Telemetry-), pid 11797 (skype.teams.dev)
10-08 07:25:25.793 15234 15234 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-08 07:25:25.793 15234 15234 F DEBUG : Build fingerprint: 'google/caiman_beta/caiman:16/BP41.250822.010/14082742:user/release-keys'
10-08 07:25:25.793 15234 15234 F DEBUG : Kernel Release: '6.1.141-android14-11-g4e52994af56a-ab13829026'
10-08 07:25:25.793 15234 15234 F DEBUG : Revision: 'MP1.0'
10-08 07:25:25.793 15234 15234 F DEBUG : ABI: 'arm64'
10-08 07:25:25.793 15234 15234 F DEBUG : Timestamp: 2025-10-08 07:25:25.394069110+0530
10-08 07:25:25.793 15234 15234 F DEBUG : Process uptime: 406s
10-08 07:25:25.793 15234 15234 F DEBUG : Executable: /system/bin/app_process64
10-08 07:25:25.793 15234 15234 F DEBUG : Cmdline: com.microsoft.skype.teams.dev
10-08 07:25:25.793 15234 15234 F DEBUG : pid: 11797, tid: 15029, name: Pool-Telemetry- >>> com.microsoft.skype.teams.dev <<<
10-08 07:25:25.793 15234 15234 F DEBUG : uid: 1010301
10-08 07:25:25.793 15234 15234 F DEBUG : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
10-08 07:25:25.793 15234 15234 F DEBUG : pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
10-08 07:25:25.793 15234 15234 F DEBUG : esr: 0000000092000006 (Data Abort Exception 0x24)
10-08 07:25:25.793 15234 15234 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
10-08 07:25:25.793 15234 15234 F DEBUG : Abort message: 'JNI ERROR (app bug): global reference table overflow (max=51200)global reference table dump:
This is a JNI Global Reference Table Overflow - a critical memory leak in native code!
Root Cause
The Culprit: libmaesdk.so - Microsoft's telemetry SDK
The Bug: HttpClient_Android::SendRequestAsync() creates JNI global references but never deletes them
The Leak: Each telemetry event creates a HttpClient$FutureShim object with a global ref that never gets cleaned up
The Result: After ~50,000 telemetry events (7 minutes of runtime), the global reference table hits the hard limit of 51,200 and the system aborts
The leak happens because of a missing cleanup step in async JNI code:
Leak Sequence: (step 5 missing?)
App logs telemetry event → logger.logEvent()
Java calls native code → nativeLogEventProperties()
Native creates global ref → NewGlobalRef(futureShim)
Async HTTP completes → Uses global ref for callback
Cleanup step MISSING → Should call DeleteGlobalRef()
Also could see ~3 OOM crash traces mostly a side effect of above memory leak.
- Lenguaje dominante
- C
- Estrellas
- 102
- Forks
- 67
- Merge medio
- 5 d 5 h
- PR fusionados (30 d)
- 8
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/cpp_client_telemetry
-
C API enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
microsoft/cpp_client_telemetry#628 ·
Los mantenedores suelen responder en 5 días
-
OneDS C++ SDK retries already-ingested iOS events, causing duplicate telemetry recordsPosiblemente ocupada @bmehta001 la tomó hace 4 días. Abiertobug
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
microsoft/cpp_client_telemetry#1542 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 5 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
microsoft/cpp_client_telemetry#1504 ·
Los mantenedores suelen responder en 5 días
-
Dropping of telemetry eventsAbiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
microsoft/cpp_client_telemetry#1413 · 2 comentarios ·
Los mantenedores suelen responder en 5 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
microsoft/cpp_client_telemetry#1353 ·
Los mantenedores suelen responder en 5 días
Todos los issues de microsoft/cpp_client_telemetry
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
HarbourMasters/Shipwright#7320 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
FujiNetWIFI/fujinet-firmware#1834 ·
Los mantenedores suelen responder en 1 día
-
Bug Status: Needs Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
yanet-platform/yanet2#2874 ·
Los mantenedores suelen responder en 1 día