Crash natif d'Android 7: libc.so tgkill

98

Je vois ce crash natif avec la trace de pile suivante.

Cela se produit uniquement sous Android 7.0 et 7.1. Rien de nouveau n'a été ajouté à l'application, qui est en production depuis quelques années, mais avec plus d'appareils mis à jour vers Nougat, ce crash se produit fréquemment maintenant et devient une nuisance.

Tout avis sera le bienvenu.

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)

Voici une liste des appareils concernés: entrez la description de l'image ici

MISE À JOUR 7/18:

Je n'arrivais toujours pas à en comprendre la racine, j'ai donc décidé d'acheter un appareil qui avait le plus d'occurrences et dont le prix était raisonnable, qui s'est avéré être la version Samsung Galaxy J3 2017 avec Android 7.0. Malheureusement, je suis toujours incapable de reproduire le crash.

J'ai également apporté des améliorations à l'utilisation de la mémoire à l'application en production, mais le plantage se produit toujours.

D'après tous les commentaires et mes propres recherches, il semble être lié à des NDK liés dynamiquement, mais je n'en utilise aucun et il est difficile de savoir si l'une des dépendances le fait.

Je voudrais partager mes dépendances, ce serait formidable si d'autres personnes confrontées au même problème pouvaient appeler si elles utilisent l'une des mêmes dépendances - peut-être pouvons-nous repérer le coupable de cette façon.

// 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; }

Pour les personnes confrontées au même plantage, veuillez répondre dans les commentaires si vous utilisez l'une de ces dépendances / versions. Peut-être pouvons-nous identifier le problème de dépendance.

AlexVPerl
la source
6
Peut-être que je pense que votre crash natif est le même problème suivant. issuetracker.google.com/issues/37123764 Mon application a un bug similaire, mais je ne trouve aucune solution ... Je pense que android 7, bug 7.1.
Koji Matsubara
3
Je vois aussi cela, exactement la même trace de pile et la même liste exacte d'appareils affectés! La dernière version a été publiée le 15 mai, mais j'ai deux lignes dans la page des plantages avec le même nom "tgkill".
Orgmir
3
Je rencontre également exactement le même problème, exactement la même trace de pile, exactement les mêmes appareils affectés, n'utilisant aucune bibliothèque native et utilisant des services de localisation et de cartes. C'est peut-être lié à ça? Quelqu'un a une solution?
Cord Rehn
3
Au cours des 2 derniers mois, nous avons eu plus de 30 000 de ces plantages tgkill affectant plus de 14 000 utilisateurs. J'ai passé les deux dernières semaines à supprimer lentement toutes les bibliothèques tierces que nous utilisons et à publier des déploiements par étapes pour voir si je peux localiser la cause de ces plantages. Tout est supprimé à l'exception de Retrofit, Okhttp, Jackson, Picasso, Firebase, Google Play Services, MultiDex et Apache Legacy. Sur la base de ce fil, nous discutons de la libération de 1% de nos utilisateurs, avec nos cartes supprimées. Actuellement en cours d'exécution: 'com.google.android.gms: play-services-maps: 11.0.1'
FinHead
3
Nous avons publié un déploiement par étapes en supprimant uniquement «com.google.android.gms: play-services-maps: 11.0.1». Après avoir regardé tout le week-end, il n'y a eu aucun cas de crash tgkill. Oui, ce problème est causé par les cartes comme mentionné par @Deo et lié au suivi des problèmes ci-dessous.
FinHead

Réponses:

33

En regardant la décharge que vous avez fournie, vous donnez quelques indices:

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

Cela indique que l'erreur s'est produite dans le thread d'interface utilisateur.

libhwui.so x 6

Cela indique que cela se produit au milieu de certains codes liés aux graphiques / ui.

libcutils.so - __android_log_assert

Il s'agit d'un gestionnaire d'assert, donc très probablement une sorte d'assert a été violée dans libwhui.

avorter:

Il s'agit de l'application demandant à l'O / S de s'arrêter «anormalement».

rise + pthread_kill + tgkill: Il s'agit de l'O / S (Android) qui ferme l'application.

Vous pouvez voir de la documentation pour le débogage de ces types de plantages ici .

Quoi qu'il en soit, je crains qu'il soit vraiment difficile de spéculer au-delà de cette interprétation grossière et imprécise des données que vous avez présentées.

Peut-être que si vous attrapiez le bogue alors qu'il était attaché à la visionneuse de journal Android, vous auriez plus de données spécifiques à l'application (ou même un message d'erreur que la fonction d'assertion émet généralement).

Mon conseil est d'utiliser quelque chose comme ACRA pour retrouver tous les détails relatifs à l'erreur, ou pour récupérer un périphérique affecté et le reproduire lorsqu'il est connecté à un débogueur.

Bonne chance!

EDIT 16/06/2017 : Je veux juste ajouter quelques informations supplémentaires, commentaire de courtoisie de Fco P. Apparemment, Google a décidé de modifier les bibliothèques natives autorisées à fonctionner dans les dernières versions d'Android (7.x). Plus de détails sont dans ce lien .

Lennart Rolland
la source
rise + pthread_kill + tgkill: Il s'agit de l'O / S (Android) qui ferme l'application. Cela se produit-il lorsque l'utilisateur supprime l'application ou automatiquement à partir du système d'exploitation?
DevC
1
C'est l'O / S qui arrête un processus défectueux pour autant que je sache. Si l'application se terminait «pacifiquement», il ne s'agirait pas d'une opération «tuer».
Lennart Rolland
8

Ceci est signalé ici: https://issuetracker.google.com/issues/37123764

Pour reproduire: Obtenez un mode affecté, activez le mode développeur et définissez les activités d'arrière-plan sur 0. Activez également "Afficher les plantages d'arrière-plan".

Ensuite, ouvrez l'application et fermez-la à nouveau: vous verrez le plantage.

TjerkW
la source
3

Pas dans les commentaires (répétition insuffisante).

Parmi les dépendances que vous avez répertoriées, nous utilisons:

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'

des versions différentes de la vôtre. Je soupçonne fortement que play-services-maps contient le bogue.

Peut-être que vous utilisez un fragment de carte dans viewpager comme nous le faisons et de nombreuses personnes en question déjà mentionnées par Koji Matsubara ( https://issuetracker.google.com/issues/37123764 )

Déo
la source
Connaissez-vous une solution pour éviter cela sur la base de ce rapport de bogue? Je ne vois aucune solution ou solution de contournement ou quoi que ce soit.
hvaughan3
J'ai le même problème qui affecte toutes mes applications, mais je n'utilise que des bibliothèques de support: annotations, v4, appcompat et design.
3c71
3

Je ne sais pas, peut-être ce problème comme le nôtre, peut-être différent, car je vois dans les dépendances y compris carview. Partagez ici l'espoir utile pour quelqu'un à l'avenir

J'ai également rencontré un problème sur Android 7.0 et 7.1 ci-dessous

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)

Après recherche et recherche sur gooogle, j'ai remplacé cardviewpar Framelayoutpuis ce problème a été résolu

songoku1610
la source
Salut @ songoku1610, comment avez-vous découvert que le problème était causé par Cardview.
Ran94
1
J'ai essayé de remplacer cardviewpar Framelayoutlà, ce problème a été résolu, ces problèmes ne se produisent que sur Android 7.x
songoku1610
Une autre chose, la question ci-dessus a été modifiée, supprimez les indépendances de texte sur la note, donc ma réponse because I see in dependencies have including carviewne semble pas correspondre à la question
songoku1610
3

J'ai eu le même problème dans la console Google Play pour les mêmes appareils que vous.

Dans mon cas, le problème était dans TextureView avec une animation dans un fil séparé avec verrouiller et déverrouiller la toile.

J'ai changé l'animation TextureView en l'animation invalidate-onDraw pour Android 7 et 7.1 et cela a aidé.

Sergueï Belozerov
la source
Mon application utilise TextureView. Pourriez-vous s'il vous plaît élaborer plus sur l' animation invalidate-onDraw .
Shishir Shetty
@ShishirShetty Je n'utilise plus TextureView Je remplace View, décris toutes les animations dans la méthode onDraw et appelle la méthode postInvalidateOnAnimation () toutes les 16 millisecondes (~ 60fps)
Sergei Belozerov
-1

Je vois ce problème à partir d'un rapport de panne sur l'appareil d'un utilisateur - `` Huawei Honor 7X (HWBND-H) '' - exécutant Android 8.0. Comme cela ne se produit pas sur le terrain pour d'autres appareils / versions de système d'exploitation, je pense que cela a peut-être déjà été corrigé dans les mises à jour du système d'exploitation (que cet utilisateur n'a pas détecté, ou peut-être que Huawei n'a pas fourni).

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.
la source