Skip to content

Crash on a background thread when internet connection is off during media upload #11664

@pinarol

Description

@pinarol

Expected behavior

No crash

Actual behavior

There's a crash produced in a background thread. It is NOT crashing the app, but it might have side effects.

Steps to reproduce the behavior

  • Open a post with gutenberg editor
  • Add a video block
  • Add a video from device, verify an upload started
  • Turn off internet connection
  • Wait until upload fails for about 30secs
  • You'll see following crash on XCode logs:
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIApplication statusBarFrame]
PID: 3914, TID: 47617357, Thread name: (none), Queue name: NSManagedObjectContext 0x6000013892c0, QoS: 0
Backtrace:
4   AutomatticTracks                    0x00000001068c80e8 -[TracksDeviceInformation statusBarHeight] + 104
5   AutomatticTracks                    0x00000001068d1342 -[TracksService mutableDeviceProperties] + 1010
6   AutomatticTracks                    0x00000001068ce92b -[TracksService trackEventName:withCustomProperties:] + 443
7   WordPress                           0x0000000102fe4f3e -[WPAnalyticsTrackerAutomatticTracks track:withProperties:] + 1374
8   WordPressShared                     0x000000010c5a7714 +[WPAnalytics track:withProperties:] + 740
9   WordPress                           0x000000010305328d +[WPAppAnalytics track:withProperties:] + 93
10  WordPress                           0x000000010305347c +[WPAppAnalytics track:error:] + 460
11  WordPress                           0x000000010302bb7f -[MediaService trackUploadError:] + 159
12  WordPress                           0x000000010302aec4 __53-[MediaService uploadMedia:progress:success:failure:]_block_invoke_2 + 68
13  CoreData                            0x00000001072ea84a developerSubmittedBlockToNSManagedObjectContextPerform + 170
14  libdispatch.dylib                   0x0000000112496db5 _dispatch_client_callout + 8
15  libdispatch.dylib                   0x000000011249e225 _dispatch_lane_serial_drain + 778
16  libdispatch.dylib                   0x000000011249ee9c _dispatch_lane_invoke + 425
17  libdispatch.dylib                   0x00000001124a8ea3 _dispatch_workloop_worker_thread + 733
18  libsystem_pthread.dylib             0x000000011287f60b _pthread_wqthread + 409
19  libsystem_pthread.dylib             0x000000011287f405 start_wqthread + 13
2019-05-09 09:51:43.856619+0300 WordPress[3914:47617357] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication statusBarFrame]
PID: 3914, TID: 47617357, Thread name: (none), Queue name: NSManagedObjectContext 0x6000013892c0, QoS: 0
Backtrace:
4   AutomatticTracks                    0x00000001068c80e8 -[TracksDeviceInformation statusBarHeight] + 104
5   AutomatticTracks                    0x00000001068d1342 -[TracksService mutableDeviceProperties] + 1010
6   AutomatticTracks                    0x00000001068ce92b -[TracksService trackEventName:withCustomProperties:] + 443
7   WordPress                           0x0000000102fe4f3e -[WPAnalyticsTrackerAutomatticTracks track:withProperties:] + 1374
8   WordPressShared                     0x000000010c5a7714 +[WPAnalytics track:withProperties:] + 740
9   WordPress                           0x000000010305328d +[WPAppAnalytics track:withProperties:] + 93
10  WordPress                           0x000000010305347c +[WPAppAnalytics track:error:] + 460
11  WordPress                           0x000000010302bb7f -[MediaService trackUploadError:] + 159
12  WordPress                           0x000000010302aec4 __53-[MediaService uploadMedia:progress:success:failure:]_block_invoke_2 + 68
13  CoreData                            0x00000001072ea84a developerSubmittedBlockToNSManagedObjectContextPerform + 170
14  libdispatch.dylib                   0x0000000112496db5 _dispatch_client_callout + 8
15  libdispatch.dylib                   0x000000011249e225 _dispatch_lane_serial_drain + 778
16  libdispatch.dylib                   0x000000011249ee9c _dispatch_lane_invoke + 425
17  libdispatch.dylib                   0x00000001124a8ea3 _dispatch_workloop_worker_thread + 733
18  libsystem_pthread.dylib             0x000000011287f60b _pthread_wqthread + 409
19  libsystem_pthread.dylib             0x000000011287f405 start_wqthread + 13
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIApplication statusBarOrientation]
PID: 3914, TID: 47617357, Thread name: (none), Queue name: NSManagedObjectContext 0x6000013892c0, QoS: 0
Backtrace:
4   AutomatticTracks                    0x00000001068c817b -[TracksDeviceInformation orientation] + 75
5   AutomatticTracks                    0x00000001068d13c6 -[TracksService mutableDeviceProperties] + 1142
6   AutomatticTracks                    0x00000001068ce92b -[TracksService trackEventName:withCustomProperties:] + 443
7   WordPress                           0x0000000102fe4f3e -[WPAnalyticsTrackerAutomatticTracks track:withProperties:] + 1374
8   WordPressShared                     0x000000010c5a7714 +[WPAnalytics track:withProperties:] + 740
9   WordPress                           0x000000010305328d +[WPAppAnalytics track:withProperties:] + 93
10  WordPress                           0x000000010305347c +[WPAppAnalytics track:error:] + 460
11  WordPress                           0x000000010302bb7f -[MediaService trackUploadError:] + 159
12  WordPress                           0x000000010302aec4 __53-[MediaService uploadMedia:progress:success:failure:]_block_invoke_2 + 68
13  CoreData                            0x00000001072ea84a developerSubmittedBlockToNSManagedObjectContextPerform + 170
14  libdispatch.dylib                   0x0000000112496db5 _dispatch_client_callout + 8
15  libdispatch.dylib                   0x000000011249e225 _dispatch_lane_serial_drain + 778
16  libdispatch.dylib                   0x000000011249ee9c _dispatch_lane_invoke + 425
17  libdispatch.dylib                   0x00000001124a8ea3 _dispatch_workloop_worker_thread + 733
18  libsystem_pthread.dylib             0x000000011287f60b _pthread_wqthread + 409
19  libsystem_pthread.dylib             0x000000011287f405 start_wqthread + 13
2019-05-09 09:51:44.777896+0300 WordPress[3914:47617357] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication statusBarOrientation]
PID: 3914, TID: 47617357, Thread name: (none), Queue name: NSManagedObjectContext 0x6000013892c0, QoS: 0
Backtrace:
4   AutomatticTracks                    0x00000001068c817b -[TracksDeviceInformation orientation] + 75
5   AutomatticTracks                    0x00000001068d13c6 -[TracksService mutableDeviceProperties] + 1142
6   AutomatticTracks                    0x00000001068ce92b -[TracksService trackEventName:withCustomProperties:] + 443
7   WordPress                           0x0000000102fe4f3e -[WPAnalyticsTrackerAutomatticTracks track:withProperties:] + 1374
8   WordPressShared                     0x000000010c5a7714 +[WPAnalytics track:withProperties:] + 740
9   WordPress                           0x000000010305328d +[WPAppAnalytics track:withProperties:] + 93
10  WordPress                           0x000000010305347c +[WPAppAnalytics track:error:] + 460
11  WordPress                           0x000000010302bb7f -[MediaService trackUploadError:] + 159
12  WordPress                           0x000000010302aec4 __53-[MediaService uploadMedia:progress:success:failure:]_block_invoke_2 + 68
13  CoreData                            0x00000001072ea84a developerSubmittedBlockToNSManagedObjectContextPerform + 170
14  libdispatch.dylib                   0x0000000112496db5 _dispatch_client_callout + 8
15  libdispatch.dylib                   0x000000011249e225 _dispatch_lane_serial_drain + 778
16  libdispatch.dylib                   0x000000011249ee9c _dispatch_lane_invoke + 425
17  libdispatch.dylib                   0x00000001124a8ea3 _dispatch_workloop_worker_thread + 733
18  libsystem_pthread.dylib             0x000000011287f60b _pthread_wqthread + 409
19  libsystem_pthread.dylib             0x000000011287f405 start_wqthread + 13
2019-05-09 09:51:45:093 WordPress[3914:47617357] Error uploading media: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000020c6340 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <A6C7A7CA-89B6-46A1-9B08-F84D6CC35F0C>.<43>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalUploadTask <A6C7A7CA-89B6-46A1-9B08-F84D6CC35F0C>.<43>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://public-api.wordpress.com/rest/v1.1/sites/147960785/media/new?locale=en, NSErrorFailingURLKey=https://public-api.wordpress.com/rest/v1.1/sites/147960785/media/new?locale=en, _kCFStreamErrorDomainKey=4}
2019-05-09 09:51:45.394386+0300 WordPress[3914:47615518] Task <D8795003-7353-4998-97F2-A8B1CEBBC365>.<9> finished with error - code: -1001
2019-05-09 09:51:45:394 WordPress[3914:47448802] TracksService Error while remote calling: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x6000020c6700 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://public-api.wordpress.com/rest/v1.1/tracks/record, NSErrorFailingURLKey=https://public-api.wordpress.com/rest/v1.1/tracks/record, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}
2019-05-09 09:52:17.423686+0300 WordPress[3914:47617693] Received XPC error Connection interrupted for message type 3 kCFNetworkAgentXPCMessageTypePACQuery
2019-05-09 09:52:17.424108+0300 WordPress[3914:47617693] Received XPC error Connection invalid for message type 3 kCFNetworkAgentXPCMessageTypePACQuery


Tested on Simulator iPhone XR, iOS 12, WPiOS 12.5

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions