2014-09-18 23 views
12

sto ricevendo un sacco di segnalazioni di crash su iOS 8 con questa analisi dello stack:incidente misterioso su iOS 8

Date/Time:  2014-09-17T20:26:15Z 
OS Version:  iPhone OS 8.0 (12A365) 
Report Version: 104 

Exception Type: SIGSEGV 
Exception Codes: SEGV_ACCERR at 0x1 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libGPUSupportMercury.dylib   0x2a4f88fe gldGetBufferAllocationIdentifiers + 194 
1 libGPUSupportMercury.dylib   0x2a4f93cb gpusSubmitDataBuffers + 108 
2 libGPUSupportMercury.dylib   0x2a4f9249 gldCreateContext + 206 
3 GLEngine        0x2613c93b gliCreateContextWithShared + 600 
4 OpenGLES        0x26218ab3 glGetFramebufferParameteriAPPLE + 776 
5 CoreImage       0x23e88b8b 0x23dea000 + 65
6 libdispatch.dylib     0x314558b7 0x31454000 + 6327 
7 libdispatch.dylib     0x314564fb dispatch_once_f + 60 
8 CoreImage       0x23e88afb 0x23dea000 + 649979 
9 CoreImage       0x23e06c79 0x23dea000 + 117881 
10 CoreUI        0x29478837 CUIEqualRenditionKeysIgnoringAttribute + 71800 
11 libsystem_pthread.dylib    0x315b9dcf sched_get_priority_min + 64 
12 libsystem_platform.dylib    0x315b2867 _os_once + 40 
13 libsystem_pthread.dylib    0x315b7f8b pthread_once + 48 
14 CoreUI        0x294787d9 CUIEqualRenditionKeysIgnoringAttribute + 71706 
15 CoreUI        0x2947faf7 CUIEqualRenditionKeysIgnoringAttribute + 101176 
16 UIKit        0x26f649db _UIGraphicsEndLetterpressWithStyle + 20792 
17 UIKit        0x26cf2875 UIGraphicsEndImageContext + 7838 
18 UIKit        0x26cf1fb5 UIGraphicsEndImageContext + 5598 
19 UIKit        0x26fe3db9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 287838 
20 UIKit        0x26cf19c7 UIGraphicsEndImageContext + 4080 
21 UIKit        0x26d8c1b1 UICeilToViewScale + 55778 
22 UIKit        0x26d70143 _UIBarHairlineShadowColorForBarStyle + 10164 
23 UIKit        0x26ce2b37 0x26cd6000 + 52023 
24 QuartzCore       0x2670accd CABackingStoreGetTypeID + 894 
25 QuartzCore       0x267066b5 CARenderServerGetServerPort + 5366 
26 UIKit        0x26cf5183 UIGraphicsGetImageFromCurrentImageContext + 2068 
27 UIKit        0x26cf1fb5 UIGraphicsEndImageContext + 5598 
28 UIKit        0x26d6efc5 _UIBarHairlineShadowColorForBarStyle + 5686 
29 UIKit        0x26d6ec63 _UIBarHairlineShadowColorForBarStyle + 4820 
30 UIKit        0x26d6e3cd _UIBarHairlineShadowColorForBarStyle + 2622 
31 UIKit        0x26fd5a6f _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 229652 
32 UIKit        0x26d6b837 _UIAccessibilityReduceMotion + 16948 
33 UIKit        0x26ce53d9 _UIApplicationLinkedOnOrAfter + 2526 
34 UIKit        0x26ce535d _UIApplicationLinkedOnOrAfter + 2402 
35 UIKit        0x26d6b24d _UIAccessibilityReduceMotion + 15434 
36 UIKit        0x26fd7ef9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 239006 
37 UIKit        0x26d6b0b3 _UIAccessibilityReduceMotion + 15024 
38 UIKit        0x26dc516f UIRectIntegralWithScale + 1040 
39 Pogoplug        0x001bccc9 __41-[InitialSlidingViewController didSignIn]_block_invoke (InitialSlidingViewController.m:216) 
40 libdispatch.dylib     0x314558cb 0x31454000 + 6347 
41 libdispatch.dylib     0x314558b7 0x31454000 + 6327 
42 libdispatch.dylib     0x314590bf _dispatch_main_queue_callback_4CF + 720 
43 CoreFoundation      0x2380dbe9 CFRunLoopTimerSetTolerance + 3370 
44 CoreFoundation      0x2380c2e9 _CFRunLoopGet2b + 2926 
45 CoreFoundation      0x2375a621 CFRunLoopRunSpecific + 474 
46 CoreFoundation      0x2375a433 CFRunLoopRunInMode + 104 
47 GraphicsServices      0x2ab080a9 GSEventRunModal + 134 
48 UIKit        0x26d44809 UIApplicationMain + 1438 
49 Pogoplug        0x0012c4bf main (main.m:11) 
50 libdyld.dylib      0x31475aaf _tlv_atexit + 8 

eventuali indizi di ciò che può essere sbagliato sarà molto apprezzato. Qui la linea 216

MenuViewController *menuVC = [[MenuViewController alloc] initWithNibName:nil bundle:nil]; 
NavControllerPortrait *navController = [[NavControllerPortrait alloc] initWithRootViewController:menuVC]; 

Ottenere lo più su iPhone 5 e iPad 3 ° generazione (non è sicuro il suo limitato a questi dispositivi).

Maggiori informazioni Un altro incidente che accade po 'meno frequentemente ha simili traccia dello stack e la causa da questo codice:

CELoginViewController *loginVC = [[CELoginViewController alloc] initWithNibName:nil bundle:nil]; 
NavControllerPortrait *nav = [[NavControllerPortrait alloc] initWithRootViewController:loginVC]; 

Così ho il forte sospetto o il mio UINavigationController personalizzato o modifiche di Apple ad esso. Dato che non sono l'unico a sperimentare questo incidente - tendo più a incolpare Apple :-)

Grazie.

+0

Non ci hai dato molto per andare avanti. Non vedo nulla di sbagliato nel codice. Funziona in Simulator con iOS 8? Se lo fa, allora la tua unica speranza è trovare iPhone 5 con iOS 8 e testarlo. –

+0

Provato sul mio iPhone 5s/iPad Air con iOS 8 e funziona bene, anche il simulatore. –

+0

@CherpakEvgeny Sfortunatamente cambiare l'immagine colorata non ha risolto il problema per me, sei riuscito a sistemare il tuo? – kbtombul

risposta

23

Non ho abbastanza reputazione per commentare e chiedere dettagli, tuttavia sto riscontrando lo stesso problema, principalmente su iPhone 5 ma anche 5c, 4s, iPad 3 e iPod 5G, e credo che quello che sono andando a dire sarà utile anche se non risponde alla domanda.

Prima di tutto, questo è il crash che si verifica quando si tenta di disegnare qualcosa con OpenGL o ridimensionare o spostare un MKMapView sullo sfondo. Potrebbe non essere ovvio nei registri degli arresti anomali, ma ogni singolo rapporto di arresto anomalo che ho ricevuto è stato quando l'applicazione è stata avviata in background. Sembra che sia lo stesso per te, considerando che UIViewController si chiama InitialSlidingViewController. La maggior parte delle volte nel mio caso si trattava di "Aggiornamento di posizione significativo", tuttavia nel tuo caso potrebbe essere l'aggiornamento "Background Fetch" o "Visits" o "Silent Remote Notification".

Una cosa che ho notato nella mia app era che stava configurando la barra di navigazione quando si arrestava in modo anomalo, in particolare cercando di eseguire il rendering di un'immagine, ho delle immagini colorate nella mia barra di navigazione. Per te è qualcos'altro ma qualcosa che richiede OpenGL, forse un effetto di movimento come la parallasse, vedo _UIAccessibilityReduceMotion nello stack trace?

Indipendentemente da cosa tu sia, o sto facendo, il fatto che avvenga di più su alcuni dispositivi e mai su alcuni dispositivi significa che è molto probabilmente un bug iOS. Vedo anche "CI :: can_use_gpu()" nel mio stack trace, si blocca perché usa gpu mentre controlla se può usare gpu.

Quindi, come impedirne l'arresto anomalo?

Puoi provare a disabilitare la funzione che stai usando, per me sostituirò l'immagine con quella correttamente colorata, invece di usare un colore di tinta.
Oppure puoi provare a caricare un altro controller di visualizzazione, magari solo un controller di visualizzazione vuoto, quando l'app viene avviata in background, quindi quando passa in primo piano scambia il controller di visualizzazione con quello che stai utilizzando in questo momento.

+2

In realtà ho sospettato tanto - per le stesse ragioni, e c'è un detto "Le grandi menti pensano un po '" - quindi immagino che questo sia il caso –

+0

Non sospetto che questo sia un Bug iOS: https://developer.apple.com/library/ios/qa/qa1766/_index.html –

+3

Grazie a @Sjoerd per il riferimento ai documenti, avrei dovuto inserire quel link nella mia risposta, aggiornerò di conseguenza. Il problema è che iOS utilizza OpenGL internamente per alcune attività di base e causa questo arresto anomalo. Ho un controller di visualizzazione, che ha un UIBarButtonItem con un'immagine colorata. Ho configurato questo pulsante in viewDidLoad e ho creato questo controller di visualizzazione rootViewController in applicationDidFinishLaunching. Penso che sia una configurazione abbastanza semplice per avere questo tipo di problema. – kbtombul

1

Lo vedo su un'app che include una vista mapKit su una delle schede. Si dice che l'errore sia legato agli aggiornamenti eseguiti sulla mappa mentre l'app è in background, e mi sono reso conto che l'unica cosa che poteva essere aggiornata era il punto blu "blinky" della posizione dell'utente. Così ho aggiunto il codice per impostare

self.mapview.showsUserLocation = NO; 

ogni volta che l'app viene messa in background e imposta su SÌ quando diventa attiva.Questo sembra aver fermato l'errore nel mio test alfa. Lo aggiornerò una volta che avrò ottenuto i risultati dei beta test.

+1

Ancora vedere questo arresto da parte degli utenti, quindi scavare di nuovo in esso. La traccia dello stack include una chiamata a un metodo "VKPolygonTileSource TileForData: downloadKey: sourceKey" quindi mi chiedo se i riquadri della mappa vengano scaricati o aggiornati mentre l'app è in background. Uno scenario possibile: scarsa connettività, quindi una connessione lenta, la mappa inizia a caricarsi, gli sfondi dell'utente tramite il pulsante Home, una tessera mappa viene caricata, tenta di aggiornarsi, si blocca. –

+0

Ancora in questo crash, ma con una frequenza molto più bassa (una volta alla settimana). Si tratta di un'applicazione aziendale business-critical, quindi anche questo è problematico. :-( –

2

C'è una discussione sul forum degli sviluppatori di Apple su questo molto comportamento, in cui un dipendente di Apple riconosce che si tratta di un bug:

https://devforums.apple.com/thread/246744?start=0&tstart=0

iOS 8.3 è stato rilasciato pochi giorni fa, e se il nostro monitoraggio degli arresti anomali è accurato, ci sono ottime probabilità che 8.3 abbia risolto questo problema. Aggiornerò questa risposta una volta che avremo più di qualche giorno di dati sotto le nostre cinture.

Modifica: dopo una settimana di rapporti sugli arresti anomali di Fabric/Crashlytics, sembra che 8.3 abbia risolto due cause di questo arresto: uno da MapKit in cui tenta di visualizzare riquadri di mappe vettoriali e/o sovrapposizione di mappe con Raster con OpenGL ES in background e un altro da UIKit in cui tenta di visualizzare sullo schermo le immagini di una scheda di UITabBar (di nuovo, usando OpenGL ES in background). Mi piacerebbe sentire dagli altri quello che vedi in produzione.

+0

Cool, thx. Nel frattempo ho aggiunto del codice per aggirare questo problema, per risolverlo per tutti, e non solo per gli utenti che hanno aggiornato a 8.3 –

+0

sto vedendo questo crash in 8.3 ancora ... –