Подтвердить что ты не робот

Родовой сбой RenderThread с сигналом 6 (SIGABRT)

Обновление!

См. ниже

Ситуация

У нас сложная диагностика проблемы с нашим приложением. Когда мы пытаемся использовать намерение, чтобы приложение камеры возвращало изображение, мы получаем ситуацию с низким уровнем сбоя, что мы не уверены в том, как отлаживать. Это происходит на устройствах Nexus 5x на Android 6.0 и Android 7.0.

Вот трассировка стека с монитора:

10-17 11:59:41.208 9925-9925/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-17 11:59:41.208 9925-9925/? A/DEBUG: Build fingerprint: 'google/bullhead/bullhead:7.0/NBD90W/3239497:user/release-keys'
10-17 11:59:41.208 9925-9925/? A/DEBUG: Revision: 'rev_1.0'
10-17 11:59:41.208 9925-9925/? A/DEBUG: ABI: 'arm64'
10-17 11:59:41.208 9925-9925/? A/DEBUG: pid: 5791, tid: 6054, name: RenderThread  >>> com.ourapp <<<
10-17 11:59:41.209 9925-9925/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
10-17 11:59:41.230 9925-9925/? A/DEBUG: Abort message: 'Leaked 2 GPU objects!'
10-17 11:59:41.230 9925-9925/? A/DEBUG:     x0   0000000000000000  x1   00000000000017a6  x2   0000000000000006  x3   0000000000000008
10-17 11:59:41.230 9925-9925/? A/DEBUG:     x4   00006e6174736e69  x5   0000000000000000  x6   0000007629a9f000  x7   0000000000000000
10-17 11:59:41.230 9925-9925/? A/DEBUG:     x8   0000000000000083  x9   ffffffffffffffdf  x10  0000000000000000  x11  0000000000000001
10-17 11:59:41.230 9925-9925/? A/DEBUG:     x12  0000000000000018  x13  0000000000000000  x14  0000000000000000  x15  000850a8eb6af8af
10-17 11:59:41.231 9925-9925/? A/DEBUG:     x16  000000762948eed0  x17  0000007629438a2c  x18  0000000000000400  x19  00000076093b84f8
10-17 11:59:41.231 9925-9925/? A/DEBUG:     x20  0000000000000006  x21  00000076093b8450  x22  000000000000000b  x23  000000762933c040
10-17 11:59:41.231 9925-9925/? A/DEBUG:     x24  00000000ffffffff  x25  00000075f9d71490  x26  7fffffffffffffff  x27  00000075f2c54060
10-17 11:59:41.231 9925-9925/? A/DEBUG:     x28  0000007625c83238  x29  00000076093b7ae0  x30  0000007629435e58
10-17 11:59:41.231 9925-9925/? A/DEBUG:     sp   00000076093b7ac0  pc   0000007629438a34  pstate 0000000060000000
10-17 11:59:41.237 3715-9157/? E/mm-camera-sensor: port_sensor_handle_aec_update:443miss aec update window, skip
10-17 11:59:41.253 9925-9925/? A/DEBUG: backtrace:
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #00 pc 000000000006ba34  /system/lib64/libc.so (tgkill+8)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #01 pc 0000000000068e54  /system/lib64/libc.so (pthread_kill+64)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #02 pc 0000000000023ed8  /system/lib64/libc.so (raise+24)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #03 pc 000000000001c790  /system/lib64/libc.so (abort+52)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #04 pc 00000000000107f4  /system/lib64/libcutils.so (__android_log_assert+224)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #05 pc 0000000000054cc0  /system/lib64/libhwui.so
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #06 pc 00000000000350f8  /system/lib64/libhwui.so
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #07 pc 00000000000328c8  /system/lib64/libhwui.so
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #08 pc 0000000000037348  /system/lib64/libhwui.so
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #09 pc 0000000000038434  /system/lib64/libhwui.so
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #10 pc 0000000000039890  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #11 pc 0000000000012460  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #12 pc 000000000009bc4c  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #13 pc 000000000006863c  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
10-17 11:59:41.254 9925-9925/? A/DEBUG:     #14 pc 000000000001d9fc  /system/lib64/libc.so (__start_thread+16)

Мы можем надежно запускать это, когда мы используем намерение вызвать приложение камеры для получения изображения со следующим кодом:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

if (intent.resolveActivity(fragmentContext.getPackageManager()) == null) {
   return;
}

try {
   File photoFile = FileUtils.createImageFile(fragmentContext);

   data.addFileUpload(photoFile.getAbsolutePath());
   Uri photoUri = FileProvider.getUriForFile(fragmentContext, OurApplication.FILE_PROVIDER, photoFile);

   intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);

   startActivityForResult(intent, REQUEST_TAKE_PHOTO);
} catch (IOException ignored) {
}

Как показано, здесь нет ничего обычного.

Окружающая среда

Мы можем запускать это на наших тестовых устройствах, которые Nexus 5x. Одним из устройств является Android 6, а другой - Android 7. Оба они производят аналогичные трассировки стека (показанный на Android 7.0).

Контекст запуска

Кажется, что мы можем вызвать это событие, учитывая одну из следующих двух ситуаций:

  • Карты Google загружаются в действие, которое запускает камеру
  • Низкая ситуация с памятью (которую мы запускали с Chrome, загруженным вкладкой или двумя cnn.com)

Что мы пробовали

Мы попытались по-разному удалить функциональность из приложения, пока мы не сможем более долгое время запускать этот сбой, но мы всегда могли вызвать его при низкой ситуации с памятью.

Вопросы

  • Кто-нибудь подбегает к этому раньше и нашел способ его решить?
  • Предложения по дальнейшему отладке этой проблемы?
  • Любые ссылки для подсказок?

Обновление

2016/11/02 - Есть отчет об ошибке, как указано в комментариях. Различные устройства/сборки (Nexus 5x, 6P и Pixel с Android 6, 7.0 и 7.1) сообщают о той же проблеме и в различных ситуациях. Я буду продолжать публиковать обновления с дополнительной информацией. Ситуация классифицирована как дефект с приоритетом малого. Я бы подумал, что вы смотрите на эту ошибку и поднимаете свои проблемы там.

2016/12/14. У меня лично есть эта проблема, даже с различными обновлениями безопасности, которые были применены. Нет никакой другой информации, кроме других, сообщающих одни и те же проблемы на разных устройствах. Пожалуйста, проверьте связанный отчет об ошибке, звезду и комментарий там. Если я найду что-нибудь, что будет работать, я отправлю здесь!

2017/07/31. Для людей, которые все еще испытывают эту проблему, один пользователь попытался сделать поэтапные выкатывания к их пользовательской базе и удаление различных функций, чтобы попытаться диагностировать, в чем проблема. В их ситуации, удалив com.google.android.gms:play-services-maps:11.0.1, их ситуация, похоже, была решена. К сожалению, карты являются основным компонентом наших приложений; таким образом, это неприемлемо в нашей ситуации. По-моему, это все равно связано с потреблением барана в различных ситуациях, что вызывает проблему при возобновлении деятельности.

2017/12/05. Никаких изменений или реального подтверждения от Google. Из того, что я нашел, эта проблема, похоже, была решена в Android 8.0 и на некоторых устройствах, на которых установлены различные обновления для Android 7.x

4b9b3361

Ответ 1

Мы изначально сообщили об этой ошибке (to google) https://issuetracker.google.com/issues/37123764. Это было проблемой в обновлении прошивки/безопасности для Nexuses (мы видели это на 5X в доме), это было исправлено в более позднем обновлении прошивки.

Телефоны по "плохой" прошивке необходимо обновить. Никогда не было обходного пути.

Ответ 2

Попробуйте очистить проект. В Android Studio Build- > Clean Project

Я не знаю почему, но это помогло мне. Запуск Samsung Galaxy S6 Android 7.0