Android 7 Native Crash: libc.so tgkill


98

Я бачу цей натовп аварій із наступним слідом стека.

Це відбувається лише в Android 7.0 та 7.1. Нічого нового не додано в додаток, який випускається вже кілька років, але в міру оновлення нових пристроїв до Nougat ця аварія трапляється часто і стає неприємністю.

Будь-яка порада буде вдячна.

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)

Ось перелік пристроїв, на які впливає: введіть тут опис зображення

ОНОВЛЕННЯ 7/18:

Все ще не вдалося докорінитися до цього, тому я вирішив придбати пристрій, який мав найбільше випадків, і за доступними цінами, який виявився версією Samsung Galaxy J3 2017 з Android 7.0. На жаль, я все ще не можу відтворити збій.

Я також вніс декілька покращень у використанні пам'яті програми у виробництві, але аварія все ще відбувається.

З усіх коментарів і моїх власних досліджень, схоже, це пов'язано з динамічно пов'язаними NDK, але я не використовую жодного і важко з'ясувати, чи є якась із залежностей.

Я хотів би поділитися своїми залежностями, було б чудово, якби інші люди, які стикаються з тією ж проблемою, могли закликати, якщо вони використовують одну і ту ж залежність - можливо, ми можемо виявити винуватця таким чином.

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

Люди, які стикаються з тим самим збоєм, будь ласка, відповідайте у коментарях, якщо ви використовуєте будь-яку з цих залежностей / версій. Можливо, ми можемо виділити проблемну залежність.


6
Можливо, я думаю, що ваш рідний збій - це той самий випуск. issueetracker.google.com/isissue/37123764 У моїй програмі є аналогічна помилка, але я не знаходжу жодного рішення ... Думаю, андроїд 7, 7.1 помилка.
Коджі Мацубара

3
Я також бачу це, точно той самий слід стека і той самий список уражених пристроїв! Остання версія була опублікована 15 травня, але у мене є два рядки на сторінці збоїв з однаковою назвою "tgkill".
Оргмір

3
Я також відчуваю цю саму проблему, точно той самий слід стека, ті ж самі пристрої, на які постраждали, використовуючи нульові власні бібліотеки та використовуючи служби розташування та карти. Можливо, це пов’язано з цим? Хтось має виправлення?
Шнур Рена

3
За останні 2 місяці у нас було більше 30 тис. Цих збоїв у tgkill, що спричинило використання 14 тис. Користувачів. Останні кілька тижнів я провів повільно, видаляючи будь-які сторонні бібліотеки, якими ми користуємось, і випускаємо поетапні розгортання, щоб побачити, чи можу я відстежувати, що викликає ці збої. Видалено все, окрім Retrofit, Okhttp, Jackson, Picasso, Firebase, Google Play Services, MultiDex та Apache Legacy. Виходячи з цієї теми, ми обговорюємо звільнення до 1% наших користувачів, при цьому наші карти видалено. Зараз працює: 'com.google.android.gms: play-services-maps: 11.0.1'
FinHead

3
Ми випустили поетапний випуск із видаленням лише 'com.google.android.gms: play-services-maps: 11.0.1'. Після перегляду його у всі вихідні не було жодних випадків аварії tgkill. Так, ця проблема викликана картами, про які згадує @Deo, і пов'язаними з трекером випусків нижче.
FinHead

Відповіді:


33

Дивлячись на дамб, який ви надали, дає декілька підказок:

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

Це вказує на те, що в потоці інтерфейсу користувача сталася помилка.

libhwui.so x 6

Це вказує на те, що це відбувається в середині деякого коду, пов'язаного з графікою / інтерфейсом.

libcutils.so - __android_log_assert

Це обробник анкет, тому, швидше за все, якийсь ствердження було порушено в libwhui.

перервати:

Це програма, яка говорить O / S, щоб вимкнути "ненормально".

підвищити + pthread_kill + tgkill: Це закриття програми O / S (Android).

Ви можете побачити деякі документи для налагодження такого роду аварій тут .

У будь-якому разі, я боюся, що дійсно важко спекулювати за межами цієї грубої та неточної інтерпретації даних, які ви представили.

Можливо, якщо ви потрапили на помилку, коли вона була прикріплена до переглядача журналу Android, у вас з’явиться більше конкретних прикладних даних (або навіть повідомлення про помилку, яке зазвичай видає функція затвердження).

Моя порада полягає в тому, щоб використовувати щось на зразок ACRA, щоб відстежувати всі деталі, що стосуються помилки, або обробляти пошкоджений пристрій і фактично відтворювати його під час приєднання до налагоджувача.

Удачі!

EDIT 2017-06-16 : Я просто хочу додати додаткову інформацію про люб’язний коментар від Fco P. Очевидно, Google вирішив внести деякі зміни в те, що рідним бібліотекам дозволяється працювати в останніх версіях Android (7.x). Більше деталей - за цим посиланням .


підвищити + pthread_kill + tgkill: Це закриття програми O / S (Android). Це відбувається, коли користувач вбиває додаток або автоматично з ОС?
DevC

1
Ось O / S вимикає це несправний процес, наскільки я знаю. Якщо додаток припинено "мирно", це не буде операцією "вбити".
Леннарт Ролланд

8

Про це повідомляється тут: https://issuetracker.google.com/isissue/37123764

Щоб відтворити: Отримайте режим, на який впливає, увімкніть режим розробника та встановіть фонові дії на 0. Також увімкніть "показати збої фону".

Потім відкрийте додаток і знову закрийте його: ви побачите збій.


3

Не в коментарях (недостатня відповідь).

З перелічених вами залежностей ми використовуємо:

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'

різні версії, ніж ваша. Я сильно підозрюю, що гра-сервіси-карти містять помилку.

Можливо, ви використовуєте фрагмент карти в viewpager, як ми, і багато хто з питань, про які вже згадував Koji Matsubara ( https://issuetracker.google.com/isissue/37123764 )


Чи знаєте ви про вирішення проблеми щодо запобігання цього на основі звіту про помилку? Я не бачу жодного рішення, вирішення чи іншого.
hvaughan3

У мене є те саме питання, яке стосується всіх моїх програм, проте я використовую лише бібліотеки підтримки: анотації, v4, appcompat та дизайн.
3c71

3

Я не знаю, може така проблема, як наша, може бути і інша, тому що я бачу, що в залежності є в тому числі carview. Поділіться тут надією, корисною для когось у майбутньому

Я також зіткнувся з проблемою на Android 7.0 та 7.1 нижче

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)

Після досліджень і пошуку в Google, я замінив cardview, Framelayoutтоді це питання було вирішено


Привіт @ songoku1610, як ви дізналися, що проблема викликана Cardview.
Ran94

1
Я намагався замінити cardviewна Framelayoutте ці питання були вирішені, це проблеми бувають тільки на Android 7.x
songoku1610

Інші речі: Питання вище було відредаговано, видаліть незалежність тексту за класом, тому моя відповідь, because I see in dependencies have including carviewсхоже, не збігається з питанням
songoku1610,

3

У мене була та сама проблема в ігровій консолі google для тих же пристроїв, що і ви.

У моєму випадку проблема була в TextureView з анімацією в окремій нитці з полотном блокування та розблокування.

Я змінив анімацію TextureView на анімацію Invalidate-onDraw для 7 та 7.1 android, і це допомогло.


У моїй програмі використовується TextureView. Чи можете ви детальніше розглянути детальніше про недійсну анімацію Draw .
Шишир Шетті

@ShishirShetty Я більше не використовую TextureView, я переосмислюю перегляд, описую всі анімації методом onDraw і дзвоню методом postInvalidateOnAnimation () кожні 16 мілісекунд (~ 60 кадрів в секунду)
Сергій Белозеров

-1

Я бачу цю проблему з повідомлення про збій на пристрої одного користувача - "Huawei Honor 7X (HWBND-H)" на ОС Android 8.0. Оскільки вона не зустрічається в польових умовах для інших пристроїв / версій ОС, я вважаю, що це вже було виправлено в оновленнях ОС (що цей користувач не взяв, або можливо Huawei не надав).

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)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.