You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by Edna Y Morales <ey...@us.ibm.com> on 2015/02/03 17:58:39 UTC

[iOS] Possible Cordova bug with WebSocket in plugin callback


Hi all,

I'm working on a bug that was reported for iOS (not through Jira), and I'm
running out of ideas on figuring out what is going on. So I'm reaching out
to the dev list to see if anyone can provide insight or thoughts on what
may be going on. The use case is this:

1. Call navigator.geolocation.getCurrentPosition(success, error);
2. Inside the success callback, open a websocket.
3. Inside websocket.onopen event handler, have a for loop that runs 20,000
times. Inside the for loop send a message to the websocket, increment a
counter, and update an element in the DOM with the new count.

The crash happens on the DOM update inside of the for loop. If I move the
websocket code outside of the plugin callback, the crash is not seen. If I
append a new element to the DOM instead of updating the same element, the
crash is not seen. If I switch out the Cordova geolocation plugin for the
native one, the crash is not seen. I have tried a few other scenarios but
can't pinpoint anything. The crash is happening on the WebThread and
sometimes I get this message "[CFRunLoopTimer release:]: message sent to
deallocated instance 0x174370c80". The stack trace doesn't trace back to
anything specific to Cordova code. It's from the WebCore. It seems like it
could just be a bug in WebKit, but some of the scenarios mentioned above
also make that hard to verify. If anyone has any insight on this, it would
be great. Let me know if you need anymore details.

Thanks,
Edna Morales

Re: [iOS] Possible Cordova bug with WebSocket in plugin callback

Posted by Shazron <sh...@gmail.com>.
This could be related https://issues.apache.org/jira/browse/CB-2301 (a
really old one)

On Tue, Feb 3, 2015 at 8:58 AM, Edna Y Morales <ey...@us.ibm.com> wrote:
>
>
> Hi all,
>
> I'm working on a bug that was reported for iOS (not through Jira), and I'm
> running out of ideas on figuring out what is going on. So I'm reaching out
> to the dev list to see if anyone can provide insight or thoughts on what
> may be going on. The use case is this:
>
> 1. Call navigator.geolocation.getCurrentPosition(success, error);
> 2. Inside the success callback, open a websocket.
> 3. Inside websocket.onopen event handler, have a for loop that runs 20,000
> times. Inside the for loop send a message to the websocket, increment a
> counter, and update an element in the DOM with the new count.
>
> The crash happens on the DOM update inside of the for loop. If I move the
> websocket code outside of the plugin callback, the crash is not seen. If I
> append a new element to the DOM instead of updating the same element, the
> crash is not seen. If I switch out the Cordova geolocation plugin for the
> native one, the crash is not seen. I have tried a few other scenarios but
> can't pinpoint anything. The crash is happening on the WebThread and
> sometimes I get this message "[CFRunLoopTimer release:]: message sent to
> deallocated instance 0x174370c80". The stack trace doesn't trace back to
> anything specific to Cordova code. It's from the WebCore. It seems like it
> could just be a bug in WebKit, but some of the scenarios mentioned above
> also make that hard to verify. If anyone has any insight on this, it would
> be great. Let me know if you need anymore details.
>
> Thanks,
> Edna Morales

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org