Thanks for explaining the issue. For our CI, we could continue using Android 4.4.2 for our emulator image as that's what most devs care about currently.
I have updated the JIRA https://issues.apache.org/jira/browse/CB-8431 with more details and changed the title. This should serve as documentation. The tests that triggers it almost every time, does a file transfer request for a non-existent URL and does an abort as well. Request and abort happen on different threadpool threads and they trigger a race in Android's implementation of OKHttp. There are two workarounds for this issue: - Upgrade to Android 5.1.1 - Use the plugin suggested by Andrew below to move to an updated version of OkHttp. Thanks, Nikhil -----Original Message----- From: Joe Bowser [mailto:bows...@gmail.com] Sent: Wednesday, April 8, 2015 9:21 AM To: dev@cordova.apache.org Subject: Re: Jira CB-831: File transfer tests crash on Android L I was about to say the same thing about API 22. We should do that before release. On Tue, Apr 7, 2015 at 6:31 PM Andrew Grieve <agri...@chromium.org> wrote: > - In 4.0.0, we remove OkHttp from our code, but Android L starts > including it for its own network stack (crazy coincidence!) > - We're not sure how frequent the crash happens - just that > MobileSpec's use of FileTransfer triggers it every time > - It is fixed by replacing the network stack with a newer version of > OkHttp > - I've published cordova-plugin-okhttp to npm, so it's installable via > cordova-cli@master > - Bug says it's fixed in Android 5.1.1 (API level 22). (thanks for > finding that okio issue!) > > On a side note - should we switch our targetSdk to 22? Probably...? > > > > On Tue, Apr 7, 2015 at 9:14 PM, Nikhil Khandelwal > <nikhi...@microsoft.com> > wrote: > > > Why am I seeing this crash with the latest master on the BuildBot CI? > > > > I understand that we're not bundling OkHttp, but it's being used > > with the File Transfer plugin on an emulator for Android 5.0.1 (API 21). > > > > The crash is happening with the stack at > > com.android.okio.OkBuffer.write(OkBuffer.java:574) and not > > com.squareup.okhttp which Android 3.7.1 platform used to package. > > > > Does Android ship with a version okhttp? Here's the issue > > description and a fix for it in Okio: > > https://github.com/square/okio/issues/79. It does not look like this > > fix is part of Android 5.0.1 - the emulator that was being used to run > > tests on our CI server. > > > > (I'm quite new to Android development - bear with me if I'm missing > > something obvious here). > > > > Thanks, > > Nikhil > > > > > > -----Original Message----- > > From: Joe Bowser [mailto:bows...@gmail.com] > > Sent: Tuesday, April 7, 2015 5:29 PM > > To: dev@cordova.apache.org > > Subject: Re: Jira CB-831: File transfer tests crash on Android L > > > > This is a Won't Fix because we're not bundling OkHttp anymore. This > > will be resolved when we release Cordova-Android 4.0.0 > > > > On Tue, Apr 7, 2015 at 5:27 PM Nikhil Khandelwal > > <nikhi...@microsoft.com > > > > wrote: > > > > > The JIRA which was marked as 'Won't fix' is currently blocking > > > Android test runs on http://ci.cordova.io: > > > https://issues.apache.org/ jira/browse/CB-8431. > > > > > > It looks like Android L's implementation of OkHttp has a race > > > condition which hits quite consistently with our current file > > > transfer tests. There is a comment by Andrew in the bug that > > > points to using this plugin on Android L: > > https://github.com/MobileChromeApps/cordova-plugin-okhttp. > > > > > > Should this plugin be a dependency to the file transfer plugin? Or > > > the code for it be rolled in as part of file transfer plugin itself? > > > > > > For the short term I'm leaning towards working around this issue, > > > by using an older AVD (instead of Android L) on our CI setup. > > > However, there is a chance developers running Cordova apps on > > > Android L will run into this and would expect some guidance here. > > > > > > Thanks, > > > Nikhil > > > > > > > > > > > >