2014-04-08 12 views
9

Un'app a cui sto lavorando ha riscontrato un crash molto strano che non riesco a riprodurre e l'unica informazione che ho riguarda è quella di Crashlytics. Sta accadendo solo su ios7 e googling mmapFileDeallocate restituisce un sito in cui qualcun altro stava subendo lo stesso crash ma il loro problema è andato via con un aggiornamento os.Arresto su mmapFileDeallocate

Ecco lo stack:

Thread : Crashed: tcpConnWorkQueue 
0 libobjc.A.dylib    0x3aa00b36 objc_msgSend + 21 
1 CFNetwork      0x2fece4c3 __CFURLCache::removeMMappedDataFromSet(void*) + 34 
2 CFNetwork      0x2fecfa45 mmapFileDeallocate(void*, void*) + 24 
3 CoreFoundation     0x3024ef5f __CFDataDeallocate + 30 
4 CoreFoundation     0x301c75f7 CFRelease + 462 
5 CoreFoundation     0x3023fed5 __CFArrayReleaseValues + 292 
6 CoreFoundation     0x301c75f7 CFRelease + 462 
7 CFNetwork      0x2fe5f1d5 __CFCachedURLResponse::~__CFCachedURLResponse() + 40 
8 CFNetwork      0x2fe5f19f __CFCachedURLResponse::~__CFCachedURLResponse() + 10 
9 CoreFoundation     0x301c75f7 CFRelease + 462 
10 CFNetwork      0x2feaeda1 HTTPProtocol::~HTTPProtocol() + 732 
11 CoreFoundation     0x301c75f7 CFRelease + 462 
12 CoreFoundation     0x302b10f0 __CFBasicHashDrain + 332 
13 CoreFoundation     0x301c75f7 CFRelease + 462 
14 CFNetwork      0x2fe9226b SocketStream::~SocketStream() + 406 
15 CFNetwork      0x2fe920c5 SocketStream::~SocketStream() + 20 
16 CoreFoundation     0x301c75f7 CFRelease + 462 
17 libdispatch.dylib    0x3aee8d1b _dispatch_call_block_and_release + 10 
18 libdispatch.dylib    0x3aeef273 _dispatch_queue_drain$VARIANT$mp + 374 
19 libdispatch.dylib    0x3aeef06b _dispatch_queue_invoke$VARIANT$mp + 42 
20 libdispatch.dylib    0x3aeefce1 _dispatch_root_queue_drain + 76 
21 libdispatch.dylib    0x3aeeff59 _dispatch_worker_thread2 + 56 
22 libsystem_pthread.dylib  0x3b02adbf _pthread_wqthread + 298 

posso pubblicare altri thread al momento della caduta, ma l'unico che si distingue per me è AFNetworking ma non sono stato in grado di trovare qualcosa di simile nei loro problemi .

+0

Sembra sospetto come un uso dopo l'uso. Se riesci a riprodurlo abbastanza facilmente, prova a eseguire gli zombi abilitati. –

+1

@tc. non siamo stati in grado di vedere questo incidente da soli e il nostro controllo di qualità e non siamo mai stati in grado di riprodurlo. Tutto quello che abbiamo sono i messaggi crashlytic:/ –

risposta

7

Stiamo anche osservando questo segnalato a crashlytics e attualmente accade solo su dispositivi iOS 7. Quando accade, abbiamo anche un thread AFNetworking.

Da questo SO thread, abbiamo rilevato che l'impostazione della cache su zero sembrava eliminare l'arresto anomalo, ma questa non è una soluzione permanente.

NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 
                 diskCapacity:0 
                  diskPath:nil]; 
[NSURLCache setSharedURLCache:sharedCache]; 

abbiamo qualche altro codice NSURLCache che riteniamo sospetto che stiamo attualmente testando fuori, vi terrò aggiornati.

UPDATE

ci sembrava di avere risolto il problema. Quello in cui crediamo abbia risolto il crash è stato il codice che stava rovinando il [NSURLCache sharedURLCache] quando un'altra parte del codice lo stava usando. Abbiamo rimosso tutte le chiamate che modificano [NSURLCache sharedURLCache].

+0

Ciao @ Michael Myers qualche aggiornamento su questo? – DAMM108

+0

@ DAMM108 Aggiornato con i risultati preliminari del nuovo codice di produzione. Questo era/è un bug molto difficile, mi interessa se stai notando qualcosa di simile. –

+0

Sì @Michael Myers, affrontando lo stesso problema e impostando NSURLCache su 0 risolto questo problema – DAMM108

0

Ho appena ottenuto lo stesso identico crash. Sembrava che stessimo usando la cache prima di impostare la nostra cache condivisa più grande. L'impostazione della cache subito dopo l'avvio dell'app ha risolto il problema.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:kNSURLCacheInMemorySize 
                 diskCapacity:kNSURLCacheFileStorageSize 
                  diskPath:nil]; 
    [NSURLCache setSharedURLCache:URLCache]; 
Problemi correlati