Crashed: com.esri.arcgis.mapRendererQ

526
5
03-02-2020 08:06 PM
New Contributor III

Hello,

We're getting a few reports of SDK 100.6/100.7 crashing for the "com.esri.arcgis.mapRendererQ" thread. The crashlog look like this:

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 12



...



Thread 12 name: Dispatch queue: com.esri.arcgis.mapRendererQ
Thread 12 Crashed:
0 libsystem_kernel.dylib 0x0000000221cba0dc __pthread_kill + 8
1 libsystem_pthread.dylib 0x0000000221d33094 pthread_kill$VARIANT$mp + 380
2 libsystem_c.dylib 0x0000000221c12ea8 abort + 140
3 libsystem_c.dylib 0x0000000221be0afc __assert_rtn + 220
4 Metal 0x0000000224255134 MTLReportFailure + 500
5 MetalTools 0x000000024754b33c validateNewTexture+ 222012 (MTLDebugBuffer*, MTLTextureDescriptor*, unsigned long, unsigned long, unsigned int, unsigned int) + 1184
6 MetalTools 0x000000024754abb0 -[MTLDebugBuffer newTextureWithDescriptor:offset:bytesPerRow:] + 256
7 AppleMetalGLRenderer 0x00000002428917b4 GLDTextureRec::getTextureResource+ 34740 (unsigned int) + 312
8 AppleMetalGLRenderer 0x0000000242895b78 GLDContextRec::addRenderPassResources+ 52088 () + 40
9 AppleMetalGLRenderer 0x0000000242898ef4 gldClearFramebufferData + 224
10 GLEngine 0x00000002436e4018 glClear_Exec + 468
11 ArcGIS 0x00000001049292f0 Esri_runtimecore::Map_renderer::Map::draw+ 24974064 (std::__1::shared_ptr<Esri_runtimecore::Rendering_engine::Device> const&) + 2844
12 ArcGIS 0x0000000103946f00 Esri_runtimecore::Geo_views::Map_view::draw+ 8318720 (Esri_runtimecore::Geo_views::Device&) + 80
13 ArcGIS 0x00000001035e7f10 RT_GeoView_draw + 48
14 ArcGIS 0x0000000103249434 -[RTCGeoView draw:error:] + 988212 (RTCGeoView.m:608)
15 ArcGIS 0x000000010328721c -[AGSGeoViewRenderer doDraw] + 1241628 (AGSGeoViewRenderer_iOS.m:439)
16 ArcGIS 0x0000000103201020 __28-[AGSGeoView setRtcGeoView:]_block_invoke_2 + 692256 (AGSGeoView.m:297)
17 ArcGIS 0x0000000103248bd8 drawRequestedHandler + 986072 (RTCGeoView.m:279)
18 ArcGIS 0x00000001053e3380 Esri_runtimecore::Common::Signal_detail::Signal_base::notify_(Esri_runtimecore::Common::Function_ref<void + 36221824 (Esri_runtimecore::Common::Signal_detail::erased_target_base&)>) const + 432
19 ArcGIS 0x00000001038b803c Esri_runtimecore::Geo_views::Geo_view_draw_requested::draw_request_callback+ 7733308 () + 96
20 ArcGIS 0x000000010492bb90 Esri_runtimecore::Map_renderer::Map::on_pulse_+ 24984464 () + 5664
21 ArcGIS 0x00000001035e931c RT_GeoView_pulse + 44
22 ArcGIS 0x000000010324a054 -[RTCGeoView pulse:] + 991316 (RTCGeoView.m:785)
23 ArcGIS 0x0000000103286d68 __28-[AGSGeoViewRenderer pulse:]_block_invoke + 1240424 (AGSGeoViewRenderer_iOS.m:313)
24 libdispatch.dylib 0x000000011dc076f4 0x11dc04000 + 14068
25 libdispatch.dylib 0x000000011dc08c78 0x11dc04000 + 19576
26 libdispatch.dylib 0x000000011dc10bf4 0x11dc04000 + 52212
27 libdispatch.dylib 0x000000011dc118b4 0x11dc04000 + 55476
28 libdispatch.dylib 0x000000011dc1b77c 0x11dc04000 + 96124
29 libsystem_pthread.dylib 0x0000000221d3d114 _pthread_wqthread + 304
30 libsystem_pthread.dylib 0x0000000221d3fcd4 start_wqthread + 4

or

Crashed: com.esri.arcgis.mapRendererQ
0 libGPUSupportMercury.dylib 0x21de5cfe4 gpus_ReturnNotPermittedKillClient
1 AGXGLDriver 0x2224c1ed8 gldUpdateDispatch
2 libGPUSupportMercury.dylib 0x21de5dfac gpusSubmitDataBuffers
3 AGXGLDriver 0x2224c3404 gldUpdateDispatch
4 GLEngine 0x22356d234 gliPresentViewES_Exec
5 OpenGLES 0x205141aa4 -[EAGLContext presentRenderbuffer:] + 80
6 ArcGIS 0x100f438c8 -[AGSGeoViewRenderer doDraw] + 473 (AGSGeoViewRenderer_iOS.m:473)
7 ArcGIS 0x100ebdab8 __28-[AGSGeoView setRtcGeoView:]_block_invoke.116 + 281 (AGSGeoView.m:281)
8 ArcGIS 0x100f05e70 drawRequestedHandler + 279 (RTCGeoView.m:279)
9 ArcGIS 0x103119fd0 Esri_runtimecore::Common::Signal_detail::Signal_base::notify_(Esri_runtimecore::Common::Function_ref<void (Esri_runtimecore::Common::Signal_detail::erased_target_base&)>) const + 436
10 ArcGIS 0x101584468 Esri_runtimecore::Geo_views::Geo_view_draw_requested::draw_request_callback() + 100
11 ArcGIS 0x10260bdf8 Esri_runtimecore::Map_renderer::Map::on_pulse_() + 5388
12 ArcGIS 0x101292cfc RT_GeoView_pulse + 44
13 ArcGIS 0x100f073b4 -[RTCGeoView pulse:] + 785 (RTCGeoView.m:785)
14 ArcGIS 0x100f432b0 __28-[AGSGeoViewRenderer pulse:]_block_invoke + 312 (AGSGeoViewRenderer_iOS.m:312)
15 libdispatch.dylib 0x201973a38 _dispatch_call_block_and_release + 24
16 libdispatch.dylib 0x2019747d4 _dispatch_client_callout + 16
17 libdispatch.dylib 0x20191d324 _dispatch_lane_serial_drain$VARIANT$mp + 592
18 libdispatch.dylib 0x20191de40 _dispatch_lane_invoke$VARIANT$mp + 428
19 libdispatch.dylib 0x2019264ac _dispatch_workloop_worker_thread + 596
20 libsystem_pthread.dylib 0x201b55114 _pthread_wqthread + 304
21 libsystem_pthread.dylib 0x201b57cd4 start_wqthread + 4

To reproduce it, we open a map, then move away from that view controller (so the map will be deallocated) and then open the same view controller again. This does not happen every time, but it happens often enough.

Is there something we can cancel/delete, so these do not happen?

Thank you,

Marius

Reply
0 Kudos
5 Replies
Esri Contributor

Marius,

I've seen the same issue but only when:

  • Using iOS 12
  • Running on a device while debugging in Xcode
  • "Metal API Validation" is enabled.

If you are debugging in Xcode when running on a device with iOS 12, you can fix the issue by disabling "Metal API Validation".  This can be found when editing the current scheme, as below:

If that's not your scenario, please reply with the iOS version, Xcode version and any other pertinent info.

Thanks,

Mark

Reply
0 Kudos
New Contributor III

Hi Mark,

Thanks for the reply.

The first crash log reported above happened in exactly the scenario identified by you. iOS 12, running in Xcode, with Metal API enabled. I'll disable that.

The second crash log happened on the customers' devices (in production). They were using Esri 100.6, 8 devices on iOS 12, 1 device on iOS 13, all of them running in the background (according to Fabric).

Thank you,

Marius

Reply
0 Kudos
Esri Contributor

Marius,

Glad to hear we solved one part of your issue.  When you say the "second crash log", is that this one?

Crashed: com.esri.arcgis.mapRendererQ
0 libGPUSupportMercury.dylib 0x21de5cfe4 gpus_ReturnNotPermittedKillClient
1 AGXGLDriver 0x2224c1ed8 gldUpdateDispatch
2 libGPUSupportMercury.dylib 0x21de5dfac gpusSubmitDataBuffers
3 AGXGLDriver 0x2224c3404 gldUpdateDispatch
4 GLEngine 0x22356d234 gliPresentViewES_Exec
5 OpenGLES 0x205141aa4 -[EAGLContext presentRenderbuffer:] + 80
6 ArcGIS 0x100f438c8 -[AGSGeoViewRenderer doDraw] + 473 (AGSGeoViewRenderer_iOS.m:473)
7 ArcGIS 0x100ebdab8 __28-[AGSGeoView setRtcGeoView:]_block_invoke.116 + 281 (AGSGeoView.m:281)

And regarding the following:

To reproduce it, we open a map, then move away from that view controller (so the map will be deallocated) and then open the same view controller again. This does not happen every time, but it happens often enough.

When you say open the same view controller, do you create a new VC at that point, or just use the one that was visible?  If you're using an existing one with an `AGSMapView`, then the map view wouldn't be dealloc'ed (unless you removed it from the view hierarchy).

Thanks.  Hopefully we can get this sorted for you.

Mark

Reply
0 Kudos
New Contributor

Marius Ursache‌ and Mark Dostal‌ was there a resolution to this issue with regards to the crashes in production? 

Reply
0 Kudos
New Contributor III

I'm not aware of a solution yet.

Reply
0 Kudos