Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-11784

Memory leak on iOS when opening and closing camera

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 2.2.0
    • None
    • cordova-plugin-camera
    • None
    • Cordova CLI version 6.3.0
      cordova-plugin-camera 2.2.0
      cordova-ios 4.2.0
      iOS 9.3.5
      iPad Mini 1

    Description

      When opening and closing the camera plugin without taking an image, the memory allocated under 'Other Resources' grows without ever being cleaned up.

      Testing on an iPad mini 1, when I open and close the camera plugin without taking a picture I can crash the app. This usually takes about 130-150 times opening and closing the camera to cause a crash. The leak is present on newer devices but the app is harder to crash due to the much larger device memory.

      Steps to reproduce:
      1. create an app with the camera plugin
      2. run the app on an iPad mini 1
      3. open the camera plugin to take a picture, not from the gallery
      4. click cancel
      5. repeat 3 + 4 until the app crashes

      It appears that Jetsam kills the app for not being a good memory citizen.

      EDIT: I've tested this further and it appears on my iPad mini 3 as well although it's harder to trigger. I've included a sample app that can be used to view the problem

      https://github.com/modohash/cordova-camera-leak

      By clicking the 'trigger camera' button and then clicking cancel and repeating the process you can see that while the app memory usage stays steady, the other processes accumulate memory.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              modohash Christopher McCabe
              Votes:
              4 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: