Crash nativo di Android 7: libc.so tgkill


98

Vedo questo arresto anomalo nativo con la seguente traccia dello stack.

Questo accade solo in Android 7.0 e 7.1. Nulla di nuovo è stato aggiunto all'app, che è in produzione da alcuni anni, ma con più dispositivi aggiornati a Nougat questo crash si verifica frequentemente ora e sta diventando un fastidio.

Tutto il consiglio sarebbe apprezzato.

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)

Di seguito è riportato un elenco dei dispositivi interessati: inserisci qui la descrizione dell'immagine

AGGIORNAMENTO 7/18:

Ancora incapace di arrivare alla radice di questo, quindi ho deciso di acquistare un dispositivo che aveva la maggior parte delle occorrenze e aveva un prezzo ragionevole, che si è rivelato essere la versione del Samsung Galaxy J3 2017 con Android 7.0. Purtroppo non sono ancora in grado di riprodurre il crash.

Ho anche apportato alcuni miglioramenti all'utilizzo della memoria all'app in produzione, ma l'arresto anomalo è ancora in corso.

Da tutti i commenti e dalle mie ricerche sembra essere correlato a NDK collegati dinamicamente, ma non ne sto usando nessuno ed è difficile scoprire se una qualsiasi delle dipendenze lo fa.

Vorrei condividere le mie dipendenze, sarebbe fantastico se altre persone che affrontano lo stesso problema potessero chiamare se stanno usando una delle stesse dipendenze - forse possiamo individuare il colpevole in questo modo.

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

Per le persone che affrontano lo stesso arresto anomalo, rispondi nei commenti se stai utilizzando una di queste dipendenze / versioni. Forse possiamo individuare il problema della dipendenza.


6
Forse penso che il tuo arresto anomalo nativo sia lo stesso problema seguente. issuetracker.google.com/issues/37123764 La mia applicazione ha un bug simile, ma non trovo alcuna soluzione ... Penso che il bug di Android 7, 7.1.
Koji Matsubara

3
Vedo anche questo, la stessa identica traccia dello stack e lo stesso identico elenco di dispositivi interessati! L'ultima versione è stata pubblicata il 15 maggio, ma ho due righe nella pagina dei crash con lo stesso nome "tgkill".
Orgmir

3
Sto anche riscontrando lo stesso identico problema, la stessa identica traccia dello stack, gli stessi dispositivi interessati, l'utilizzo di zero librerie native e l'utilizzo dei servizi di localizzazione e mappe. Forse è legato a quello? Qualcuno ha una soluzione?
Cord Rehn

3
Negli ultimi 2 mesi, abbiamo registrato oltre 30.000 di questi arresti anomali di tgkill che hanno interessato oltre 14.000 utenti. Ho trascorso le ultime due settimane a rimuovere lentamente tutte le librerie di terze parti che stiamo utilizzando e a rilasciare implementazioni graduali per vedere se riesco a rintracciare la causa di questi arresti anomali. Viene rimosso tutto tranne Retrofit, Okhttp, Jackson, Picasso, Firebase, Google Play Services, MultiDex e Apache Legacy. Sulla base di questo thread, stiamo discutendo del rilascio per l'1% dei nostri utenti, con le nostre mappe rimosse. Attualmente in esecuzione: "com.google.android.gms: play-services-maps: 11.0.1"
FinHead

3
Abbiamo rilasciato un'implementazione graduale con la sola rimozione di "com.google.android.gms: play-services-maps: 11.0.1". Dopo averlo visto per tutto il fine settimana, non ci sono stati casi di crash del tgkill. Sì, questo problema è causato dalle mappe menzionate da @Deo e collegate al tracker dei problemi di seguito.
FinHead

Risposte:


33

Guardare il dump che hai fornito fornisce alcuni indizi:

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

Ciò indica che l'errore si è verificato nel thread dell'interfaccia utente.

libhwui.so x 6

Ciò indica che ciò sta accadendo nel mezzo di un codice relativo alla grafica / interfaccia utente.

libcutils.so - __android_log_assert

Questo è un gestore di asserzioni, quindi molto probabilmente è stato violato un tipo di asserzione libwhui.

abortire:

Questa è l'applicazione che dice all'O / S di spegnersi "in modo anomalo".

raise + pthread_kill + tgkill: questo è il sistema operativo (Android) che chiude l'app.

Puoi vedere della documentazione per il debug di questi tipi di arresti anomali qui .

Comunque, temo che sia davvero difficile speculare al di là di questa interpretazione grossolana e imprecisa dei dati che hai presentato.

Forse se rilevassi il bug mentre era allegato al visualizzatore di log Android, avresti più dati specifici dell'applicazione (o anche un messaggio di errore che di solito la funzione assert emette).

Il mio suggerimento è di usare qualcosa come ACRA per rintracciare tutti i dettagli relativi all'errore, o entrare in possesso di un dispositivo interessato e riprodurlo effettivamente mentre è collegato a un debugger.

In bocca al lupo!

EDIT 2017-06-16 : Voglio solo aggiungere qualche commento di cortesia extra di Fco P. Apparentemente Google ha deciso di apportare alcune modifiche a ciò che le librerie native possono eseguire nelle ultime versioni di Android (7.x). Maggiori dettagli sono a questo link .


raise + pthread_kill + tgkill: questo è il sistema operativo (Android) che chiude l'app. Ciò si verifica quando l'utente chiude l'app o automaticamente dal sistema operativo?
DevC

1
Questo è il sistema operativo che lo interrompe come un processo malfunzionante per quanto ne so. Se l'app fosse terminata "pacificamente" non sarebbe stata un'operazione "kill".
Lennart Rolland

8

Questo è segnalato qui: https://issuetracker.google.com/issues/37123764

Per riprodurre: ottieni una modalità interessata, abilita la modalità sviluppatore e imposta le attività in background su 0. Abilita anche "mostra arresti anomali in background".

Quindi apri l'app e chiudila di nuovo: vedrai l'arresto anomalo.


3

Non nei commenti (rappresentante insufficiente).

Delle dipendenze che hai elencato usiamo:

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'

versioni diverse dalla tua. Ho il forte sospetto che le mappe dei servizi di gioco contengano il bug.

Forse utilizzi frammenti di mappa in viewpager come facciamo noi e molte persone in questione già menzionate da Koji Matsubara ( https://issuetracker.google.com/issues/37123764 )


Conosci una soluzione per evitare che ciò accada sulla base di quella segnalazione di bug? Non vedo alcuna soluzione o soluzione alternativa o altro.
hvaughan3

Ho lo stesso problema che riguarda tutte le mie app, tuttavia utilizzo solo le librerie di supporto: annotazioni, v4, appcompat e design.
3c71

3

Non lo so, forse questo problema come il nostro, forse diverso, perché vedo nelle dipendenze che hanno incluso carview. Condividi qui la speranza utile per qualcuno in futuro

Ho anche riscontrato problemi su Android 7.0 e 7.1 sotto

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)

Dopo la ricerca e la ricerca su gooogle, ho sostituito cardviewda Framelayoutallora questo problema è stato risolto


Ciao @ songoku1610, come hai scoperto che il problema è causato da Cardview.
Ran94

1
Ho provato a sostituire cardviewa Framelayoutquel punto questo problema è stato risolto, questo problema si verifica solo su Android 7.x
songoku1610

Altre cose, la domanda sopra è stata modificata, rimuovi le indipendenze del testo in grado, quindi la mia risposta because I see in dependencies have including carviewsembra non corrispondere alla domanda
songoku1610

3

Ho avuto lo stesso problema nella console di Google Play per gli stessi dispositivi come te.

Nel mio caso il problema era in TextureView con animazione in thread separato con blocco e sblocco canvas.

Ho cambiato l'animazione di TextureView nell'animazione invalidate-onDraw per 7 e 7.1 Android e questo ha aiutato.


La mia applicazione utilizza TextureView. Potresti per favore approfondire di più sull'animazione invalidate-onDraw .
Shishir Shetty

@ShishirShetty Non uso più TextureView Sostituisco View, descrivo tutte le animazioni nel metodo onDraw e chiamo il metodo postInvalidateOnAnimation () ogni 16 millisecondi (~ 60fps)
Sergei Belozerov

-1

Vedo questo problema da un rapporto di arresto anomalo sul dispositivo di un utente - "Huawei Honor 7X (HWBND-H)" con Android 8.0. Poiché non si verifica sul campo per altri dispositivi / versioni del sistema operativo, il mio pensiero è che potrebbe essere già stato corretto negli aggiornamenti del sistema operativo (che questo utente non ha rilevato, o forse Huawei non ha fornito).

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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.