[ https://issues.apache.org/jira/browse/CB-1404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462522#comment-13462522 ]
Tom Clarkson commented on CB-1404: ---------------------------------- You should have access to that code now if you still need to reproduce it, but I think I have tracked down the actual cause now. The key difference between XHR_WITH_PAYLOAD and XHR_NO_PAYLOAD is the use of commandQueueFlushing - it prevents a new request from being sent until it is unset as the final step of the previous request. Without that check, there is nothing to stop the second plugin call from running before execXhr is ready for reuse. A small change to exec fixes the issue: // execXhr = execXhr || new XMLHttpRequest(); if (!execXhr || execXhr.readyState != 4) execXhr = new XMLHttpRequest(); If the previous request has not finished, a new request is created so that the previous request can finish rather than being cancelled at a point which triggers a system bug. > EXC_BAD_ACCESS when using XHR_WITH_PAYLOAD bridge mode > ------------------------------------------------------- > > Key: CB-1404 > URL: https://issues.apache.org/jira/browse/CB-1404 > Project: Apache Cordova > Issue Type: Bug > Components: iOS > Affects Versions: 2.1.0 > Environment: iPad 2, iOS 5.1.1 > Reporter: Tom Clarkson > Assignee: Andrew Grieve > Fix For: 2.2.0 > > > When calling a plugin the app crashes on WebThread with EXC_BAD_ACCESS in > WebCore::DocumentThreadableLoader::cancel. > This appears to be some sort of timing issue, as it does not happen on every > call - I am seeing it in an autosave function which makes lots of calls to > PGSQLitePlugin. > The error did not appear before upgrading to 2.1, and setting the bridge mode > to IFRAME_NAV restores the previous behaviour (no crashes, but odd scrolling > functionality). > Setting the bridge mode to XHR_NO_PAYLOAD also seems to fix it - not sure if > removing the payload actually does anything different or just makes it fast > enough that the timing condition does not come up in normal app usage. > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira