Bloqueo nativo de Android 7: libc.so tgkill

98

Veo este bloqueo nativo con el siguiente seguimiento de pila.

Esto ocurre solo en Android 7.0 y 7.1. No se ha agregado nada nuevo a la aplicación, que ha estado en producción durante algunos años, pero con la actualización de más dispositivos a Nougat, este bloqueo ocurre con frecuencia ahora y se está convirtiendo en una molestia.

Se agradecería cualquier consejo.

native: pc 000000000007a6c4  /system/lib64/libc.so (tgkill+8)
  native: pc 0000000000077920  /system/lib64/libc.so (pthread_kill+64)
  native: pc 000000000002538c  /system/lib64/libc.so (raise+24)
  native: pc 000000000001d24c  /system/lib64/libc.so (abort+52)
  native: pc 000000000001225c  /system/lib64/libcutils.so (__android_log_assert+224)
  native: pc 00000000000610e0  /system/lib64/libhwui.so
  native: pc 000000000003908c  /system/lib64/libhwui.so
  native: pc 000000000003609c  /system/lib64/libhwui.so
  native: pc 000000000003b4fc  /system/lib64/libhwui.so
  native: pc 000000000003c520  /system/lib64/libhwui.so
  native: pc 000000000003e694  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152)
  native: pc 00000000000127f0  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+336)
  native: pc 00000000000a50b0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
  native: pc 00000000000770f4  /system/lib64/libc.so (_ZL15__pthread_startPv+204)
  native: pc 000000000001e7d0  /system/lib64/libc.so (__start_thread+16)

A continuación, se muestra una lista de los dispositivos afectados: ingrese la descripción de la imagen aquí

ACTUALIZACIÓN 18/7:

Todavía no puedo llegar a la raíz de esto, así que decidí comprar un dispositivo que tenía la mayoría de las ocurrencias y tenía un precio razonable, que resultó ser la versión Samsung Galaxy J3 2017 con Android 7.0. Desafortunadamente, todavía no puedo reproducir el bloqueo.

También realicé algunas mejoras en el uso de la memoria para la aplicación en producción, pero el bloqueo aún está sucediendo.

De todos los comentarios y mi propia investigación, parece estar relacionado con NDK vinculados dinámicamente, pero no estoy usando ninguno y es difícil averiguar si alguna de las dependencias lo hace.

Me gustaría compartir mis dependencias, sería genial si otras personas que enfrentan el mismo problema pudieran llamar si están usando una de las mismas dependencias; tal vez podamos detectar al culpable de esta manera.

// App Compat
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'

    // Play Services
    compile 'com.google.android.gms:play-services-location:8.3.0'
    compile 'com.google.android.gms:play-services-maps:8.3.0'
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
    compile 'com.google.android.gms:play-services-appindexing:8.3.0'
    compile 'com.google.android.gms:play-services-ads:8.3.0'

    // Misc Libraries
    compile 'fr.avianey.com.viewpagerindicator:library:2.4.1@aar'
    compile files('app/libs/htmlcleaner-2.7.jar')
    compile files('app/libs/protobuf-java-2.6.0.jar')
    compile files('app/libs/nineoldandroids-2.4.0.jar')

    // Fabric
    compile('com.twitter.sdk.android:twitter:1.13.0@aar') { transitive = true; }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; }

Para las personas que enfrentan el mismo bloqueo, responda en los comentarios si está utilizando alguna de estas dependencias / versiones. Quizás podamos señalar el problema de la dependencia.

AlexVPerl
fuente
6
Quizás creo que su accidente nativo es el mismo problema siguiente. issuetracker.google.com/issues/37123764 Mi aplicación tiene un error similar, pero no encuentro ninguna solución ... Creo que Android 7, error 7.1.
Koji Matsubara
3
¡También veo esto, exactamente el mismo seguimiento de pila y exactamente la misma lista de dispositivos afectados! La última versión se publicó el 15 de mayo, pero tengo dos líneas en la página de bloqueos con el mismo nombre "tgkill".
Orgmir
3
También estoy experimentando exactamente el mismo problema, exactamente el mismo seguimiento de pila, exactamente los mismos dispositivos afectados, usando cero bibliotecas nativas y usando servicios de ubicación y mapas. ¿Quizás esté relacionado con eso? ¿Alguien tiene una solución?
Cord Rehn
3
Durante los últimos 2 meses, hemos tenido más de 30.000 de estos fallos de tgkill que han afectado a más de 14.000 usuarios. Pasé las últimas semanas eliminando lentamente las bibliotecas de terceros que estamos usando y lanzando lanzamientos por etapas para ver si puedo rastrear qué está causando estos bloqueos. Se elimina todo, excepto Retrofit, Okhttp, Jackson, Picasso, Firebase, Google Play Services, MultiDex y Apache Legacy. Basado en este hilo, estamos discutiendo la liberación al 1% de nuestros usuarios, con nuestros mapas eliminados. Actualmente en ejecución: 'com.google.android.gms: play-services-maps: 11.0.1'
FinHead
3
Lanzamos un lanzamiento por etapas con solo eliminar 'com.google.android.gms: play-services-maps: 11.0.1'. Después de verlo todo el fin de semana, no hubo casos del accidente de tgkill. Sí, este problema es causado por los mapas mencionados por @Deo y vinculados al rastreador de problemas a continuación.
FinHead

Respuestas:

33

Mirar el volcado que proporcionó le da algunas pistas:

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

Esto indica que el error ocurrió en el hilo de la interfaz de usuario.

libhwui.so x 6

Esto indica que esto está sucediendo en medio de algunos códigos relacionados con gráficos / interfaz de usuario.

libcutils.so - __android_log_assert

Este es un controlador de aserción, por lo que lo más probable es que se haya violado algún tipo de aserción libwhui.

abortar:

Esta es la aplicación que le dice al O / S que se apague "anormalmente".

raise + pthread_kill + tgkill: Este es el O / S (Android) que cierra la aplicación.

Puede ver alguna documentación para depurar este tipo de fallas aquí .

De todos modos, me temo que es realmente difícil especular más allá de esta interpretación tosca e imprecisa de los datos que presentó.

Tal vez si detectó el error mientras estaba adjunto al visor de registro de Android, tendría más datos específicos de la aplicación (o incluso un mensaje de error que la función de aserción generalmente muestra).

Mi consejo es usar algo como ACRA para rastrear todos los detalles relacionados con el error, o conseguir un dispositivo afectado y reproducirlo mientras está conectado a un depurador.

¡Buena suerte!

EDITAR 2017-06-16 : Solo quiero agregar un comentario de cortesía de información adicional de Fco P. Aparentemente, Google ha decidido realizar algunos cambios en las bibliotecas nativas que pueden ejecutarse en las últimas versiones de Android (7.x). Más detalles están en este enlace .

Lennart Rolland
fuente
raise + pthread_kill + tgkill: Este es el O / S (Android) que cierra la aplicación. ¿Esto ocurre cuando el usuario mata la aplicación o automáticamente desde el sistema operativo?
DevC
1
Ese es el O / S cerrándolo por un proceso que funciona mal, hasta donde yo sé. Si la aplicación termina "pacíficamente", no sería una operación de "eliminación".
Lennart Rolland
8

Esto se informa aquí: https://issuetracker.google.com/issues/37123764

Para reproducir: obtenga un modo afectado, habilite el modo de desarrollador y configure las actividades en segundo plano en 0. También habilite "mostrar bloqueos en segundo plano".

Luego abra la aplicación y ciérrela nuevamente: verá el bloqueo.

TjerkW
fuente
3

No en comentarios (representante insuficiente).

De las dependencias que ha enumerado utilizamos:

compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'

compile 'com.google.android.gms:play-services-maps:10.2.1'
compile 'com.google.android.gms:play-services-location:10.2.1'

versiones diferentes a la tuya. Tengo una fuerte sospecha de que play-services-maps contiene el error.

Quizás use el fragmento de mapa en viewpager como lo hacemos nosotros y muchas personas en cuestión ya mencionadas por Koji Matsubara ( https://issuetracker.google.com/issues/37123764 )

Deo
fuente
¿Conoce una solución alternativa para evitar esto basándose en ese informe de error? No veo ninguna solución o solución alternativa ni nada.
hvaughan3
Tengo el mismo problema que afecta a todas mis aplicaciones, sin embargo, solo uso bibliotecas de soporte: anotaciones, v4, appcompat y diseño.
3c71
3

No lo sé, tal vez este problema como el nuestro, tal vez diferente, porque veo en dependencias que incluyen carview. Comparte aquí esperanza útil para alguien en el futuro

También enfrenté un problema en Android 7.0 y 7.1 a continuación

03-04 23:44:51.489 2173-2173/? A/DEBUG: Abort message: 'Error: Ambient Vertex Buffer overflow!!! used 420, total 284'
03-04 23:44:51.489 2173-2173/? A/DEBUG:     eax 00000000  ebx 0000083b  ecx 00000857  edx 00000006
03-04 23:44:51.489 2173-2173/? A/DEBUG:     esi d19ff978  edi d19ff920
03-04 23:44:51.489 2173-2173/? A/DEBUG:     xcs 00000023  xds 0000002b  xes 0000002b  xfs 0000006b  xss 0000002b
03-04 23:44:51.489 2173-2173/? A/DEBUG:     eip f00a6bb9  ebp d19fee68  esp d19fee0c  flags 00000292
03-04 23:44:51.555 2173-2173/? A/DEBUG: backtrace:
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #00 pc 00000bb9  [vdso:f00a6000] (__kernel_vsyscall+9)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #01 pc 0007a2ec  /system/lib/libc.so (tgkill+28)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #02 pc 00075b35  /system/lib/libc.so (pthread_kill+85)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #03 pc 0002784a  /system/lib/libc.so (raise+42)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #04 pc 0001ee26  /system/lib/libc.so (abort+86)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #05 pc 0000fa65  /system/lib/libcutils.so (__android_log_assert+245)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #06 pc 00084356  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #07 pc 0003a5ba  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #08 pc 00083d04  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #09 pc 0008c5df  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #10 pc 0008e6d8  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #11 pc 0008e5d2  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #12 pc 000350fe  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #13 pc 0001201f  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+207)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #14 pc 0006e53b  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+111)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #15 pc 00011873  /system/lib/libutils.so (_ZN13thread_data_t10trampolineEPKS_+259)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #16 pc 00075292  /system/lib/libc.so (_ZL15__pthread_startPv+210)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #17 pc 0002028e  /system/lib/libc.so (__start_thread+30)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #18 pc 0001e066  /system/lib/libc.so (__bionic_clone+70)

Después de investigar y buscar en gooogle, reemplacé cardviewpor Framelayoutentonces este problema se resolvió

songoku1610
fuente
Hola @ songoku1610, ¿cómo averiguaste que Cardview causa el problema?
Ran94
1
Intenté reemplazarlo cardviewpara Framelayoutluego resolver este problema, este problema solo ocurre en Android 7.x
songoku1610
Otras cosas, la pregunta anterior ha sido editada, elimine las independencia de texto en el grado, por lo que mi respuesta because I see in dependencies have including carviewparece no coincidir con la pregunta
songoku1610
3

Tuve el mismo problema en la consola de Google Play para los mismos dispositivos que tú.

En mi caso, el problema estaba en TextureView con animación en un hilo separado con bloqueo y desbloqueo de lienzo.

Cambié la animación TextureView a la animación invalidate-onDraw para Android 7 y 7.1 y eso ayudó.

Sergei Belozerov
fuente
Mi aplicación usa TextureView. ¿Podría dar más detalles sobre la animación invalidada-onDraw ?
Shishir Shetty
@ShishirShetty Ya no uso TextureView Anulo View, describo todas las animaciones en el método onDraw y llamo al método postInvalidateOnAnimation () cada 16 milisegundos (~ 60 fps)
Sergei Belozerov
-1

Veo este problema en un informe de fallas en el dispositivo de un usuario: 'Huawei Honor 7X (HWBND-H)', con Android 8.0. Dado que no está ocurriendo en el campo para otros dispositivos / versiones del sistema operativo, mi pensamiento es que ya podría haberse solucionado en las actualizaciones del sistema operativo (que este usuario no ha recogido, o posiblemente Huawei no ha proporcionado).

backtrace:
  #00  pc 000000000006a808  /system/lib64/libc.so (tgkill+8)
  #01  pc 000000000001db50  /system/lib64/libc.so (abort+88)
  #02  pc 0000000000007f4c  /system/lib64/liblog.so (__android_log_assert+304)
  #03  pc 000000000004e314  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread10EglManager13createSurfaceEP13ANativeWindow+192)
  #04  pc 000000000004c790  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread14OpenGLPipeline10setSurfaceEPNS_7SurfaceENS1_12SwapBehaviorE+64)
  #05  pc 00000000000492b4  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread13CanvasContext10setSurfaceEPNS_7SurfaceE+140)
  #06  pc 000000000005123c  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthreadL17Bridge_initializeEPNS1_14initializeArgsE+16)
  #07  pc 0000000000052fc4  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread22MethodInvokeRenderTask3runEv+24)
  #08  pc 0000000000053f1c  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+348)
  #09  pc 0000000000011670  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+280)
  #10  pc 00000000000be1e8  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+136)
  #11  pc 00000000000671b8  /system/lib64/libc.so (_ZL15__pthread_startPv+36)
  #12  pc 000000000001eee4  /system/lib64/libc.so (__start_thread+68)
Venu G.
fuente