RenderThread与信号6(SIGABRT)的本机崩溃

Jay*_*den 27 crash android

更新!

见下文

情况

我们的应用程序难以诊断问题.当我们尝试使用intent让相机应用程序返回图片时,我们会收到一个低级别的崩溃情况,我们不确定如何调试.这是在Android 6.0和Android 7.0上的Nexus 5x设备上发生的.

以下是监视器的堆栈跟踪:

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)
Run Code Online (Sandbox Code Playgroud)

当我们使用意图调用相机应用程序以使用以下代码检索图片时,我们可以可靠地触发此操作:

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) {
}
Run Code Online (Sandbox Code Playgroud)

如图所示,这里没有任何常见的东西.

环境

我们能够在我们的Nexus 5x测试设备上触发此操作.一个设备是Android 6,另一个是Android 7.它们都产生类似的堆栈跟踪(显示的是来自Android 7.0).

触发上下文

在以下两种情况中,我们似乎能够触发此事件:

  1. Google地图会加载到启动相机的活动中
  2. 内存不足的情况(我们通过Chrome加载了一个或两个cnn.com标签触发)

我们尝试过的

我们试图从应用程序中逐步删除功能,直到我们无法再触发此崩溃,但我们总是能够在内存不足的情况下触发它.

问题

  • 有没有人在此之前遇到这种情况并找到解决方法?
  • 关于如何进一步调试此问题的建议?
  • 提示的任何链接?

更新

2016/11/02 - 评论中提到了一个开放的错误报告.不同的设备/构建(Nexus 5x,6P和Pixel with Android 6,7.0和7.1)也报告了各种不同类型的情况下的相同问题.我将继续发布更新信息.这种情况被归类为优先级较小的缺陷.我会考虑盯着那个bug并在那里提出你的担忧.

2016/12/14 - 即使已经应用了各种安全更新,我个人仍然遇到此问题.除了在各种设备上报告相同问题的其他人之外,没有任何其他信息.请查看链接的错误报告,在那里加注星标和评论.如果我发现任何有用的东西,我会在这里发布!

2017/07/31 - 对于仍然遇到此问题的人,一位用户尝试对其用户群进行分阶段部署,并删除各种功能以尝试诊断问题所在.在他们的情况下,通过删除com.google.android.gms:play-services-maps:11.0.1,他们的情况似乎已经解决.不幸的是,地图是我们应用程序的核心组件; 因此,在我们的情况下这是不可接受的.在我看来,这似乎与在各种情况下消耗ram有关,导致恢复活动时的问题.

2017/12/05 - Google无变更或真实确认.根据我的发现,此问题似乎已在Android 8.0和运行各种Android 7.x更新的设备上得到解决

jt-*_*son 0

我们最初向 google 报告了此错误https://issuetracker.google.com/issues/37123764。这是 Nexuses 固件/安全更新中的一个问题(我们在 5X 内部看到了这个问题),它在后来的固件更新中得到了修复。

固件“不良”的手机需要更新。从未找到解决方法。