Elijah R created CB-14020:
-----------------------------

             Summary: cordova-plugin-geolocation crashes with "Collection was 
mutated while being enumerated"
                 Key: CB-14020
                 URL: https://issues.apache.org/jira/browse/CB-14020
             Project: Apache Cordova
          Issue Type: Bug
          Components: cordova-plugin-geolocation
    Affects Versions: Master
         Environment: iOS 11
cordova-ios@4.3.1
cordova-plugin-geolocation@2.4.2

Although I am running an older version, this issue does not appear to be fixed 
in the latest plugin version as the relevant code has not been changed.

The javascript in my app is making multiple calls to 
`navigator.geolocation.getCurrentPosition()` in rapid succession.
            Reporter: Elijah R
         Attachments: crash-log.txt

There is a race condition in CDVLocation.m.  The 
self.locationData.locationCallbacks array can be mutated in one thread and 
enumerated concurrently in another thread, which causes the app to crash with 
the following exception:

Fatal Exception: NSGenericException
*** Collection <__NSArrayM: 0x1d444d020> was mutated while being enumerated.

The exception is raised at [CDVLocation returnLocationError:withMessage:] 
(CDVLocation.m:312)

I am unable to reproduce the issue, however it is a common crash for users of 
my app.  A user named seeday on github has opened a pull request to address 
this issue: https://github.com/apache/cordova-plugin-geolocation/pull/91

I'm filing this bug to help get that work merged.

I've attached an abridged crash log with the relevant stack trace.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to