2014-09-18 28 views
12

tôi nhận được rất nhiều báo cáo sự cố trên iOS 8 với stack trace này:vụ tai nạn bí ẩn trên 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 

Bất kỳ manh mối để những gì có thể là sai lầm sẽ được nhiều đánh giá cao. Đây là dòng 216

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

Tải chủ yếu trên iPhone 5 và iPad thế hệ thứ 3 (không chắc chắn giới hạn đối với các thiết bị đó).

Thông tin thêm Một vụ tai nạn đó xảy ra chút ít thường xuyên có stack trace và nguyên nhân tương tự của mã này:

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

Vì vậy, tôi rất nghi ngờ hoặc UINavigationController tùy chỉnh của tôi hay những thay đổi của Apple với nó. Do tôi không phải là người duy nhất gặp phải sự cố này - tôi có xu hướng đổ lỗi cho Apple :-)

Cảm ơn bạn.

+0

Bạn đã không cho chúng tôi nhiều thứ để tiếp tục. Tôi không thấy bất cứ điều gì sai trái với mã. Ứng dụng có hoạt động trong Trình mô phỏng chạy iOS 8 không? Nếu có thì hy vọng duy nhất của bạn là tìm iPhone 5 chạy iOS 8 và thử nghiệm trên đó. –

+0

Đã thử trên iPhone 5s/iPad Air của tôi với iOS 8 và nó hoạt động tốt, giả lập là tốt. –

+0

@CherpakEvgeny Thật không may thay đổi hình ảnh nhuộm màu không khắc phục được sự cố này đối với tôi, bạn có thể sửa lỗi của mình không? – kbtombul

Trả lời

23

Tôi không có đủ danh tiếng để nhận xét và yêu cầu chi tiết, tuy nhiên tôi gặp phải vấn đề tương tự, chủ yếu trên iPhone 5 nhưng cũng 5c, 4s, iPad 3 và iPod 5G và tôi tin rằng nói sẽ hữu ích ngay cả khi nó không trả lời câu hỏi.

Trước hết, đây là sự cố xảy ra khi bạn cố gắng vẽ thứ gì đó bằng OpenGL hoặc đổi kích thước hoặc di chuyển MKMapView trong nền. Nó có thể không rõ ràng trong các bản ghi sự cố của bạn, nhưng mỗi một bản báo cáo sự cố mà tôi nhận được là khi ứng dụng bắt đầu ở chế độ nền. Nó có vẻ như nó giống nhau cho bạn, xem xét UIViewController được gọi là InitialSlidingViewController. Đó là với "Cập nhật vị trí đáng kể" phần lớn thời gian trong trường hợp của tôi, tuy nhiên nó có thể là bản cập nhật "Tìm nạp nền" hoặc "Lượt truy cập" hoặc "Thông báo từ xa im lặng" trong trường hợp của bạn.

Một điều tôi nhận thấy trong ứng dụng của tôi là thiết lập thanh điều hướng khi nó bị lỗi, cụ thể hơn là cố gắng hiển thị hình ảnh, tôi đã tô màu hình ảnh trong thanh điều hướng của mình. Đối với bạn nó là cái gì khác nhưng cái gì đó đòi hỏi OpenGL, có thể là một hiệu ứng chuyển động như thị sai, tôi thấy _UIAccessibilityReduceMotion trong ngăn xếp dấu vết?

Bất kể bạn đang làm gì, hoặc tôi đang làm, thực tế là điều đó xảy ra nhiều hơn trên một số thiết bị và không bao giờ trên một số thiết bị có nghĩa là đó có thể là lỗi iOS. Tôi cũng thấy "CI :: can_use_gpu()" trong dấu vết ngăn xếp của tôi, nó bị treo vì nó sử dụng gpu trong khi kiểm tra xem nó có thể sử dụng gpu hay không.

Vậy làm cách nào để ngăn không cho nó bị lỗi?

Bạn có thể thử tắt tính năng bạn đang sử dụng, đối với tôi, tôi sẽ thay thế hình ảnh bằng màu được tô màu chính xác, thay vì sử dụng màu tô màu. Hoặc bạn có thể thử tải một bộ điều khiển chế độ xem khác, có thể chỉ là một bộ điều khiển xem trống, khi ứng dụng bắt đầu ở chế độ nền, sau đó khi trao đổi tiền cảnh cho bộ điều khiển chế độ xem với bộ điều khiển bạn đang sử dụng ngay bây giờ.

+2

Tôi thực sự đã nghi ngờ nhiều - vì cùng một lý do, và có một câu nói "Great minds think a like" - vì vậy tôi đoán đây là trường hợp –

+0

Tôi không nghi ngờ đây là một Lỗi iOS: https://developer.apple.com/library/ios/qa/qa1766/_index.html –

+3

Cảm ơn @Sjoerd vì đã đề cập đến tài liệu, tôi nên đưa vào liên kết đó trong câu trả lời của mình, tôi sẽ cập nhật cho phù hợp. Vấn đề là iOS sử dụng OpenGL nội bộ cho một số nhiệm vụ cơ bản và nó gây ra sự cố này. Tôi có một bộ điều khiển xem, trong đó có một UIBarButtonItem với một hình ảnh màu. Tôi thiết lập nút này trong viewDidLoad và tôi thực hiện điều khiển xem này rootViewController trong applicationDidFinishLaunching. Tôi nghĩ đó là một thiết lập khá cơ bản để có loại vấn đề này. – kbtombul

1

Tôi thấy điều này trên một ứng dụng bao gồm chế độ xem bản đồKit trên một trong các tab. Các lỗi được báo cáo gắn liền với các bản cập nhật được thực hiện trên bản đồ trong khi các ứng dụng được nền, và tôi nhận ra rằng điều duy nhất có thể được cập nhật là vị trí người dùng "blinky" chấm màu xanh. Vì vậy, tôi đã thêm mã để đặt

self.mapview.showsUserLocation = NO; 

bất cứ khi nào ứng dụng được đặt nền và đặt thành YES khi nó hoạt động.Điều này dường như đã dừng lỗi trong thử nghiệm alpha của tôi. Tôi sẽ cập nhật điều này khi tôi lấy lại kết quả từ thử nghiệm beta.

+1

Vẫn thấy sự cố này từ người dùng, vì vậy hãy tìm hiểu về nó một lần nữa. Theo dõi ngăn xếp bao gồm một cuộc gọi đến một phương pháp "VKPolygonTileSource TileForData: downloadKey: sourceKey" vì vậy tôi tự hỏi nếu các lát bản đồ đang được tải xuống hoặc cập nhật trong khi ứng dụng được nền. Một kịch bản có thể xảy ra - kết nối kém nên kết nối chậm, bản đồ bắt đầu tải, người dùng nền nó thông qua nút Home, một lát bản đồ kết thúc tải, cố gắng cập nhật, lỗi. –

+0

Vẫn thấy sự cố này nhưng với tần suất thấp hơn nhiều (mỗi tuần một lần). Đây là một ứng dụng doanh nghiệp quan trọng vì vậy ngay cả đó là vấn đề mặc dù. :-( –

2

Có một cuộc thảo luận về các nhà phát triển diễn đàn của Apple về hành vi rất này, nơi một nhân viên của Apple thừa nhận đây là một lỗi:

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

iOS 8.3 đã được phát hành chỉ là một vài ngày trước đây, và nếu giám sát sự cố của chúng tôi là chính xác, có một cơ hội rất tốt là 8.3 đã khắc phục vấn đề này. Tôi sẽ cập nhật câu trả lời này sau khi chúng tôi có nhiều hơn một vài ngày giá trị của dữ liệu theo vành đai của chúng tôi.

Chỉnh sửa: sau một tuần báo cáo sự cố từ Fabric/Crashlytics, có vẻ như 8,3 đã giải quyết hai nguồn của sự cố này: một từ MapKit nơi nó cố gắng hiển thị lát bản đồ vector và/hoặc lát raster bản đồ lớp phủ với OpenGL ES trong nền, và một cái khác từ UIKit, nơi nó cố gắng render một hình ảnh tab của UITabBar trong nền (một lần nữa, sử dụng OpenGL ES trong nền). Rất thích nghe từ những người khác những gì bạn đang thấy trong sản xuất.

+0

Cool, thx. Trong khi đó tôi đã thêm mã để khắc phục sự cố này, để khắc phục sự cố này cho tất cả mọi người và không chỉ cho những người dùng đã nâng cấp lên 8.3 –

+0

tôi đang thấy sự cố này trong 8.3 vẫn ... –

Các vấn đề liên quan