Select to view content in your preferred language

Random crash when tap on Marker

4675
13
07-06-2016 12:53 PM
PrasadPotale
Deactivated User

Found few crashes on Crashlytics, with following details, any help about the cause of issue, its occurring when we tap on map.

Crashed: com.apple.main-thread

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

Crashed: com.apple.main-thread

0  libsystem_platform.dylib       0x182f362a0 _platform_memmove + 176

1  AGXGLDriver                    0x194d2ff6c glrAGXRenderVertexArray(GLDContextRec*, unsigned int, unsigned int, int, int, unsigned int, void const*, int, void const*)

2  AGXGLDriver                    0x194d2ff6c glrAGXRenderVertexArray(GLDContextRec*, unsigned int, unsigned int, int, int, unsigned int, void const*, int, void const*)

3  GLEngine                       0x195ad2ea4 glDrawElements_ACC_ES2Exec

4  MyCity                      0x100a4c044 Esri_runtimecore::Map_renderer::Sequence_pick_visitor::draw_() + 396

5  MyCity                      0x100a36b98 Esri_runtimecore::Map_renderer::Graphic_buffer::visit_sequences_(std::__1::shared_ptr<Esri_runtimecore::HAL::Device> const&, std::__1::shared_ptr<Esri_runtimecore::Map_renderer::Sequence_visitor> const&, Esri_runtimecore::Map_renderer::Graphic_buffer::Allow_throttling, bool) + 972

6  MyCity                      0x100a05e0c Esri_runtimecore::Map_renderer::Graphics_layer::gpu_hit_test_(std::__1::shared_ptr<Esri_runtimecore::HAL::Device> const&, std::__1::shared_ptr<Esri_runtimecore::Map_renderer::Display_properties> const&, std::__1::shared_ptr<Esri_runtimecore::Map_renderer::Hit_testable::Hit_test_request_details> const&) + 1004

7  MyCity                      0x100a0773c Esri_runtimecore::Map_renderer::Graphics_layer::hit_test(std::__1::shared_ptr<Esri_runtimecore::Geometry::Multi_path> const&, unsigned long) + 460

8  MyCity                      0x10046b894 -[AGSMapViewBase hitTestPoint:mapPoint:] + 232

9  MyCity                      0x100399bac -[AGSMapView singleTap] + 336

10 UIKit                          0x1889c1f30 _UIGestureRecognizerSendTargetActions + 164

11 UIKit                          0x1885d6728 _UIGestureRecognizerSendActions + 172

12 UIKit                          0x1884637a0 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 784

13 UIKit                          0x1889c3530 ___UIGestureRecognizerUpdate_block_invoke898 + 72

14 UIKit                          0x1884224d8 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 372

15 UIKit                          0x18841f254 _UIGestureRecognizerUpdate + 2404

16 CoreFoundation                 0x183290728 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32

17 CoreFoundation                 0x18328e4cc __CFRunLoopDoObservers + 372

18 CoreFoundation                 0x18328e8fc __CFRunLoopRun + 928

19 CoreFoundation                 0x1831b8c50 CFRunLoopRunSpecific + 384

20 GraphicsServices               0x184aa0088 GSEventRunModal + 180

21 UIKit                          0x18849a088 UIApplicationMain + 204

22 MyCity                      0x10024a550 main (AppDelegate.swift:16)

0 Kudos
13 Replies
ChristopherMilack1
Regular Contributor

I get the same thing in a few scenarios. It seems to happen when I push or present a new view controller and usually only when I have GPS turned on.

Have you found any solution to this?

0 Kudos
PrasadPotale
Deactivated User

No I've posted this question on Stack overflow as well, but didn't get any response yet.

I'll update you, if I found any solution for it. Also let me know if you found any solution.

0 Kudos
PrasadPotale
Deactivated User

Marius UrsacheRyan OlsonDivesh Goyal​ Hey guys, can you please help us to identify this issue.

0 Kudos
RyanOlson1
Esri Contributor

Can you try turning hit-testing off on a per-layer basis to narrow down what layer is causing the crash?

0 Kudos
ChristopherMilack1
Regular Contributor

Hey Prasad/Ryan,

Sorry to hijack this thread but I've run into a similar issue and had some detailed repro cases that might be helpful.

This was my workflow:

  • Show view controller with AGSMapView in navigation controller (Location Display turned on) -
    • Do not interact with the map view at all
  • Push a new view controller on the navigation controller
  • Click back to return to the map view controller

At this point, if GPS is still on and the users location is offscreen, I will get a similar crash when I tap the map. However, if I pan the map first, then tap, I have no issues.

As a workaround, I started shutting off the GPS before pushing the new view controller and that resolved my issues.  It's been a while since I did that work but I did the exact test you described (removing layers), and the crash did not seem to correlate to any specific layer.  I can run these tests again if it would be helpful.

Here's another post I made when this first happened. The crash output was slightly different but the issue seemed to be the same. This frame buffer exception was consistent and repeatable but the _platform_memmove crash that Prasad was seeing was more intermittent for me. Both occurred when tapping on the map after returning from another view controller.

Frame_buffer_OGL::init_ FAILED when tapping map

Hope that is helpful.

Chris

0 Kudos
PrasadPotale
Deactivated User

Hi Chris, I'll try the scenario you have mentioned, and let you know, if I can reproduce it.

0 Kudos
PrasadPotale
Deactivated User

Hello Ryan Olson,

Thanks for replying, following is the code which I have used to add Picture Marker Symbol, the issue is random and when I tap on the marker the above crash issue is occurring,

self.markerGraphicsLayer = AGSGraphicsLayer(fullEnvelope:envelop ,renderingMode:AGSGraphicsLayerRenderingMode.Dynamic)

self.agsMapView.addMapLayer(self.markerGraphicsLayer, withName:Constants.graphicsLayerNames.MarkerGraphicsLayer)

func createMarkerGraphicsWithBadgeCount(point:AGSPoint,image:UIImage ,graphicAttributes :[NSObject:AnyObject] )

    {

var graphicPoint:AGSPoint!

        var graphicSymbol:AGSPictureMarkerSymbol!

graphicPoint = AGSPoint(x: point.x, y:point.y, spatialReference:self.agsMapView.spatialReference)

      

      

        graphicSymbol = AGSPictureMarkerSymbol(image:image)

      

        let graphics = AGSGraphic(geometry: graphicPoint, symbol:graphicSymbol, attributes:graphicAttributes)

        self.markerGraphicsLayer.addGraphic(graphics)

}

//Delegate method to handle tap on marker

func didTapOnGraphics(graphic:AGSGraphic, coordinate:CLLocationCoordinate2D)

    {

//Here new controller will be presented

}

0 Kudos
RyanOlson1
Esri Contributor

can you try AGSGraphicsLayerRenderingMode.Static?

0 Kudos
PrasadPotale
Deactivated User

Now I've changed it to Static mode but now if I rotate map, markers also getting rotated, I'll test more on it and let you know, if it fixes that crash or not. Thanks.

0 Kudos