[jira] [Comment Edited] (CB-8002) Creating a new div for every Js - Native exec() call

2015-02-06 Thread Kim Hansen (JIRA)

[ 
https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14309379#comment-14309379
 ] 

Kim Hansen edited comment on CB-8002 at 2/6/15 4:41 PM:


Putting in a plug for getting this fix out sooner than later. The memory growth 
doesn't trigger iOS memory warnings so a dev may be unaware it's happening. It 
does not appear as a leak in Instruments, but that's expected since it's not 
really a leak. In our app, it seems like the OS or the browser puts us in 
bad-app jail and queues up native calls. 

Symptomatically, Xcode console output stops and calls through the dialogs 
plugin don't result in a dialog presentation--nothing at all happens. Non 
system events proceed normally so until there's a failed system level call a 
user will think the app is ok. As soon as the home button is pressed, Xcode 
console will barf out all of the queued console.log messages and when the app 
is relaunched (without force quit), the queued dialogs appear. All of them, one 
at a time.

For the benefit of google, Instruments shows unabated growth of the memory 
allocated to VM: JS garbage collector. My simple test method is to use 
setInterval to fire off a console.log message indicating the current time, and 
then watch the console either in Xcode itself or via the devices window in 
Xcode. At some point in time with 3.7.0, the console messages will stop 
arriving.

I have tested the fix on the following devices, watching both for the above 
symptoms and for the linear memory usage expansion signature (we make routine 
system calls in our app) in both Instruments and Xcode. I am satisfied (enough) 
that the fix is production worthy, we'll be shipping to Apple later today.
 * iPhone 4S on 7.0.6
 * iPhone 5, 5S and 6 on 8.1.3



was (Author: khansen):
Putting in a plug for getting this fix out sooner than later. The memory growth 
doesn't trigger iOS memory warnings so a dev may be unaware it's happening. It 
does not appear as a leak in Instruments, but that's expected since it's not 
really a leak. In our app, it seems like the OS puts us in bad-app jail and 
queues up native calls. 

Symptomatically, Xcode console output stops and calls through the dialogs 
plugin don't result in a dialog presentation--nothing at all happens. Non 
system events proceed normally so until there's a failed system level call a 
user will think the app is ok. As soon as the home button is pressed, Xcode 
console will barf out all of the queued console.log messages and when the app 
is relaunched (without force quit), the queued dialogs appear. All of them, one 
at a time.

For the benefit of google, Instruments shows unabated growth of the memory 
allocated to VM: JS garbage collector. My simple test method is to use 
setInterval to fire off a console.log message indicating the current time, and 
then watch the console either in Xcode itself or via the devices window in 
Xcode. At some point in time with 3.7.0, the console messages will stop 
arriving.

I have tested the fix on the following devices, watching both for the above 
symptoms and for the linear memory usage expansion signature (we make routine 
system calls in our app) in both Instruments and Xcode. I am satisfied (enough) 
that the fix is production worthy, we'll be shipping to Apple later today.
 * iPhone 4S on 7.0.6
 * iPhone 5, 5S and 6 on 8.1.3


 Creating a new div for every Js - Native exec() call
 -

 Key: CB-8002
 URL: https://issues.apache.org/jira/browse/CB-8002
 Project: Apache Cordova
  Issue Type: Bug
  Components: iOS
Affects Versions: 3.7.0
 Environment: Tested on multiple iOS 8.1 devices, simulators
Reporter: Serdar Onal
Assignee: Andrew Grieve
Priority: Critical
 Fix For: 3.8.0


 Since the 3.7.0 update, when cordova does a Js to Native call using exec(), 
 somehow the underlying cordova.js is creating a gap://ready iframe on every 
 call. This means that if you made 1000 native calls you'll have 1000 divs on 
 the DOM.
 I believe this issue is of critical priority as it incurs a huge memory leak.
 Screenshot from safari inspector
 https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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



[jira] [Comment Edited] (CB-8002) Creating a new div for every Js - Native exec() call

2015-01-19 Thread Shazron Abdullah (JIRA)

[ 
https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14283157#comment-14283157
 ] 

Shazron Abdullah edited comment on CB-8002 at 1/19/15 11:16 PM:


The dev version I mentioned contains only the two bug fixes above plus 3.7.0, 
if you are comfortable with that I say install it. Sorry I didn't mention (as 
Hirbod below found out), you will have to remove your ios platform first, then 
add the new ios@9e53 platform

In the future I would plan on getting hotfixes this way, although it may only 
contain the currently released version plus the fix only, nothing else.


was (Author: shazron):
The dev version I mentioned contains only the two bug fixes above plus 3.7.0, 
if you are comfortable with that I say install it. Sorry I didn't mention (as 
Hirbod below found out), you will have to remove your ios platform first, then 
add the new ios@9e53 platform

 Creating a new div for every Js - Native exec() call
 -

 Key: CB-8002
 URL: https://issues.apache.org/jira/browse/CB-8002
 Project: Apache Cordova
  Issue Type: Bug
  Components: iOS
Affects Versions: 3.7.0
 Environment: Tested on multiple iOS 8.1 devices, simulators
Reporter: Serdar Onal
Assignee: Andrew Grieve
Priority: Critical

 Since the 3.7.0 update, when cordova does a Js to Native call using exec(), 
 somehow the underlying cordova.js is creating a gap://ready iframe on every 
 call. This means that if you made 1000 native calls you'll have 1000 divs on 
 the DOM.
 I believe this issue is of critical priority as it incurs a huge memory leak.
 Screenshot from safari inspector
 https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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



[jira] [Comment Edited] (CB-8002) Creating a new div for every Js - Native exec() call

2015-01-16 Thread Hirbod (JIRA)

[ 
https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14218742#comment-14218742
 ] 

Hirbod edited comment on CB-8002 at 1/16/15 4:20 PM:
-

I can confirm this bug. I had a setInterval() with an console.log inside and 
wondered myself... More then 1000 created iframes in few minutes. But it seems 
not to effect memory (1mb increase) (because of display: none I guess)

But this should be fixed quickly. Thanks everybody!

Edit: correction: it has bad side-effects with memory.


was (Author: hirbod):
I can confirm this bug. I had a setInterval() with an console.log inside and 
wondered myself... More then 1000 created iframes in few minutes. But it seems 
not to effect memory (1mb increase) (because of display: none I guess)

But this should be fixed quickly. Thanks everybody!

 Creating a new div for every Js - Native exec() call
 -

 Key: CB-8002
 URL: https://issues.apache.org/jira/browse/CB-8002
 Project: Apache Cordova
  Issue Type: Bug
  Components: iOS
Affects Versions: 3.7.0
 Environment: Tested on multiple iOS 8.1 devices, simulators
Reporter: Serdar Onal
Assignee: Andrew Grieve
Priority: Critical

 Since the 3.7.0 update, when cordova does a Js to Native call using exec(), 
 somehow the underlying cordova.js is creating a gap://ready iframe on every 
 call. This means that if you made 1000 native calls you'll have 1000 divs on 
 the DOM.
 I believe this issue is of critical priority as it incurs a huge memory leak.
 Screenshot from safari inspector
 https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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



[jira] [Comment Edited] (CB-8002) Creating a new div for every Js - Native exec() call

2015-01-16 Thread Hirbod (JIRA)

[ 
https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14280455#comment-14280455
 ] 

Hirbod edited comment on CB-8002 at 1/16/15 4:19 PM:
-

I'll have some similiar issues here. I use a native google maps plugin and 
every time I call the addMarker() request, a new iFrame is created in DOM. 
After 1000 markers, my app is crashing and dead. Please guys, at least provide 
some way of hotfixing. 

You just can't leave such critical bugs open since 11/Nov/14. More then 2 
months. Please push a 3.7.4 including at least a hotfix for that.

I know this is an open source project and I respect this as much as I can, 
donate and try to contribute as much as possible, but please, don't ignore 
critical bugs for that such amount of time..


was (Author: hirbod):
I'll have some similiar issues here. I use a native google maps plugin and 
every time I call the addMarker() request, a new iFrame is created in DOM. 
After 1000 markers, my app is crashing and dead. Please guys, at least provide 
some way of hotfixing. 

You just can't leave such critical bugs open since 11/Nov/14. More then 2 
months. Please push a 3.7.4 including at least a hotfix for that.

I know this is an open source project and I respect this as much as I can, 
donate and try to contribute as much as possible but don't ignore critical bugs 
for that such amount of time..

 Creating a new div for every Js - Native exec() call
 -

 Key: CB-8002
 URL: https://issues.apache.org/jira/browse/CB-8002
 Project: Apache Cordova
  Issue Type: Bug
  Components: iOS
Affects Versions: 3.7.0
 Environment: Tested on multiple iOS 8.1 devices, simulators
Reporter: Serdar Onal
Assignee: Andrew Grieve
Priority: Critical

 Since the 3.7.0 update, when cordova does a Js to Native call using exec(), 
 somehow the underlying cordova.js is creating a gap://ready iframe on every 
 call. This means that if you made 1000 native calls you'll have 1000 divs on 
 the DOM.
 I believe this issue is of critical priority as it incurs a huge memory leak.
 Screenshot from safari inspector
 https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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



[jira] [Comment Edited] (CB-8002) Creating a new div for every Js - Native exec() call

2015-01-16 Thread Georg Howen (JIRA)

[ 
https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14280449#comment-14280449
 ] 

Georg Howen edited comment on CB-8002 at 1/16/15 5:25 PM:
--

I'll second Hirbod here. A new version of my app including the current Cordova 
released on the app store yesterday and currently my users are more or less 
killing me. My app uses the SQLite plugin. After a few hundred SQL updates 
(which happen quite frequently) we have 999+ iframes in the DOM, the iOS device 
runs out of memory, the database stops and we have a very unhappy user. A 
severe memory leak like that in a framework requires an immediate fix IMHO. I 
had to remove my app from the app store just now to contain the damage and I am 
thinking hard about going native to lessen the dependancy on third party 
frameworks.

I do apprechiate the work of all contributors to OSS very much and I know very 
well that bugs do happen. But I feel that with this one the possible side 
effects have not been seen in their full potential which resulted in a too 
relaxed release planning for the fix. 

Please release an update asap and hopefully spare some developers a lot of 
headaches and very angry clients. Thank you for this and all the great work on 
Cordova.


was (Author: ghowen):
I'll second Hirbod here. A new version of my app including the current Cordova 
released on the app store yesterday and currently my users are more or less 
killing me. My app uses the SQLite plugin. After a few hundred SQL updates 
(which happen quite frequently) we have 999+ iframes in the DOM, the iOS device 
runs out of memory, the database stops and we have a very unhappy user. A 
severe memory leak like that in a framework requires an immediate fix IMHO. I 
had to remove my app from the app store just now to contain the damage and I am 
thinking hard about going native to lessen the dependancy on third party 
frameworks. I know very well that bugs do happen. But this one should be fixed 
asap as the consequences can be very bad indeed and are not visible right away 
- memory leaks...

 Creating a new div for every Js - Native exec() call
 -

 Key: CB-8002
 URL: https://issues.apache.org/jira/browse/CB-8002
 Project: Apache Cordova
  Issue Type: Bug
  Components: iOS
Affects Versions: 3.7.0
 Environment: Tested on multiple iOS 8.1 devices, simulators
Reporter: Serdar Onal
Assignee: Andrew Grieve
Priority: Critical

 Since the 3.7.0 update, when cordova does a Js to Native call using exec(), 
 somehow the underlying cordova.js is creating a gap://ready iframe on every 
 call. This means that if you made 1000 native calls you'll have 1000 divs on 
 the DOM.
 I believe this issue is of critical priority as it incurs a huge memory leak.
 Screenshot from safari inspector
 https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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



[jira] [Comment Edited] (CB-8002) Creating a new div for every Js - Native exec() call

2014-11-19 Thread Hirbod (JIRA)

[ 
https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14218742#comment-14218742
 ] 

Hirbod edited comment on CB-8002 at 11/20/14 12:03 AM:
---

I can confirm this bug. I had a setInterval() with an console.log inside and 
wondered myself... More then 1000 created iframes in few minutes. But it seems 
not to effect memory (1mb increase) (because of display: none I guess)

But this should be fixed quickly. Thanks everybody!


was (Author: hirbod):
I can confirm this bug. I had a setInterval() with an console.log inside and 
wondered myself... More then 1000 created iframes in few minutes. But it seems 
not the effect memory that badly (because of display: none I guess)

But I guess this should be fixed quickly.

 Creating a new div for every Js - Native exec() call
 -

 Key: CB-8002
 URL: https://issues.apache.org/jira/browse/CB-8002
 Project: Apache Cordova
  Issue Type: Bug
  Components: iOS
Affects Versions: 3.7.0
 Environment: Tested on multiple iOS 8.1 devices, simulators
Reporter: Serdar Onal
Assignee: Shazron Abdullah
Priority: Critical

 Since the 3.7.0 update, when cordova does a Js to Native call using exec(), 
 somehow the underlying cordova.js is creating a gap://ready iframe on every 
 call. This means that if you made 1000 native calls you'll have 1000 divs on 
 the DOM.
 I believe this issue is of critical priority as it incurs a huge memory leak.
 Screenshot from safari inspector
 https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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