2014-12-01 51 views
12

我有这个崩溃发生在我们的生产应用程序很多,但我们无法重现它。它仅在使用iOS8 SDK的iOS8上发生。iOS崩溃:CFNetwork HTTPReadFilter :: doPlainRead(StreamReader *,无符号字符*,长,CFStreamError *,无符号字符*)

HTTPReadFilter::doPlainRead(StreamReader*, unsigned char*, long, CFStreamError*, unsigned char*) inside CFNetwork. Crashed: com.apple.NSURLConnectionLoader EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x00000000 

StackTrace: 

     libsystem_platform.dylib  
    _platform_memmove + 185 

    CFNetwork 
    HTTPReadFilter::doPlainRead(StreamReader*, unsigned char*, long, CFStreamError*, unsigned char*) + 178 

    CFNetwork 
    HTTPReadFilter::_streamImpl_Read(unsigned char*, long, CFStreamError*, unsigned char*) + 394 

    CFNetwork 
    CoreStreamBase::_streamInterface_Read(unsigned char*, long) + 98 

    CFNetwork 
    HTTPNetStreamInfo::_streamImpl_Read(__CFReadStream*, unsigned char*, long, CFStreamError*, unsigned char*) + 306 

    CFNetwork 
    CFNetworkReadStream::httpStreamRead(__CFReadStream*, unsigned char*, long, CFStreamError*, unsigned char*, void*) + 44 

    CoreFoundation 
    CFReadStreamRead + 328 

    CFNetwork 
    HTTPNetStreamInfo::_readStreamClientCallBack(__CFReadStream*, unsigned long) + 128 

    CFNetwork 
    CFNetworkReadStream::_readStreamClientCallBackCallBack(__CFReadStream*, unsigned long, void*) + 38 

    CoreFoundation 
    _signalEventSync + 146 

    CoreFoundation 
    _cfstream_shared_signalEventSync + 342 
     CoreFoundation 
    __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 
     CoreFoundation 
    CFRunLoopRunInMode + 106 

    CFNetwork 
    +[NSURLConnection(Loader) _resourceLoadLoop:] + 486 
     Foundation 
    __NSThread__main__ + 1118 
     libsystem_pthread.dylib 
    _pthread_start + 118 

任何帮助非常感谢!

+2

看到这一点。你是在所有的拱门上还是仅在arm64上看到这个? – 2015-01-04 21:02:03

+0

你能给我们更多的背景吗,偶然使用'SDWebImage'吗? – 2015-01-09 07:26:02

+0

不使用SDWebImage,但我正在进行web服务调用来更新我的产品图像。 '[NSURLConnection sendSynchronousRequest:req returningResponse:&resp error:&err];'是我在一个blockOperation中运行的行,它在for循环中。它仅在iOS-8上发生,并且每隔几分钟就会发生一次。不知何故'req'对象正在给予EXC_BAD_ACC。 @RyanRomanchuk你能找出你的问题吗? – 2015-01-12 03:01:10

回答

2

这似乎确实是一个iOS 8的错误。尽量不要为您的NSURLCache设置自定义大小。检查这个https://devforums.apple.com/message/1102182#1102182

+0

谢谢你的链接Raphael。我没有自定义NSURLCache的大小。我只是这样做[[NSURLCache sharedURLCache] removeAllCachedResponses];当应用程序启动,然后在一个webservice调用我这样做[请求setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; [[NSURLCache sharedURLCache] removeCachedResponseForRequest:request];你知道这是否也会影响CFNetwork崩溃?我这样做是因为有时app不会清除缓存,也不会查看服务器响应。 – 2015-02-12 04:35:51

+0

我不知道你提到的代码是否也会导致崩溃。我还没有在AppStore上更新我的版本,删除NSURLCache的自定义大小。我会在这里发布结果。 – 2015-02-12 12:01:11

+0

只是为了说明,没有为NSURLCache设置自定义大小确实解决了这个问题。这是Apple的一个bug的解决方法。 – 2015-02-23 16:54:23