DKImagePickerController: Infinite loop in DKImageManager.fetchImageDataForAsset

I am experiencing an infinite loop sometimes when running DKImageManager.fetchImageDataForAsset. On line 137 the method calls itself resulting in a loop and eventually crash.

Here’s a part of (since it repeats itself) my stack trace:

...
1373 DKImagePickerController        0x100b1c210 specialized DKImageManager.fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> () (DKImageManager.swift:141)
1374 DKImagePickerController        0x100b1d6f8 specialized DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift:136)
1375 DKImagePickerController        0x100b1ad70 DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1376 DKImagePickerController        0x100b1cdbc partial apply for DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1377 DKImagePickerController        0x100b1af04 thunk (DKImageManager.swift)
1378 Photos                         0x1902dfff8 __65-[PHImageManager requestImageDataForAsset:options:resultHandler:]_block_invoke + 384
1379 Photos                         0x1902cce74 -[PHCoreImageManager _fetchAnySizeImageAsNon5551BytesWithRequest:library:format:bestFormat:optimalSourcePixelSize:sync:fireAndForgetCPLDownload:completionHandler:] + 4984
1380 Photos                         0x1902d5ca8 -[PHCoreImageManager _processImageRequest:sync:] + 3356
1381 Photos                         0x1902da620 -[PHImageManager requestSynchronousImageForAsset:targetSize:contentMode:options:completionHandler:] + 352
1382 Photos                         0x1902dfc78 -[PHImageManager requestImageDataForAsset:options:resultHandler:] + 368
1383 DKImagePickerController        0x100b1c210 specialized DKImageManager.fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> () (DKImageManager.swift:141)
1384 DKImagePickerController        0x100b1d6f8 specialized DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift:136)
1385 DKImagePickerController        0x100b1ad70 DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1386 DKImagePickerController        0x100b1cdbc partial apply for DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1387 DKImagePickerController        0x100b1af04 thunk (DKImageManager.swift)
1388 Photos                         0x1902dfff8 __65-[PHImageManager requestImageDataForAsset:options:resultHandler:]_block_invoke + 384
1389 Photos                         0x1902cce74 -[PHCoreImageManager _fetchAnySizeImageAsNon5551BytesWithRequest:library:format:bestFormat:optimalSourcePixelSize:sync:fireAndForgetCPLDownload:completionHandler:] + 4984
1390 Photos                         0x1902d5ca8 -[PHCoreImageManager _processImageRequest:sync:] + 3356
1391 Photos                         0x1902da620 -[PHImageManager requestSynchronousImageForAsset:targetSize:contentMode:options:completionHandler:] + 352
1392 Photos                         0x1902dfc78 -[PHImageManager requestImageDataForAsset:options:resultHandler:] + 368
1393 DKImagePickerController        0x100b1c210 specialized DKImageManager.fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> () (DKImageManager.swift:141)
1394 DKImagePickerController        0x100b1d6f8 specialized DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift:136)
1395 DKImagePickerController        0x100b1ad70 DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1396 DKImagePickerController        0x100b1cdbc partial apply for DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1397 DKImagePickerController        0x100b1af04 thunk (DKImageManager.swift)
1398 Photos                         0x1902dfff8 __65-[PHImageManager requestImageDataForAsset:options:resultHandler:]_block_invoke + 384
1399 Photos                         0x1902cce74 -[PHCoreImageManager _fetchAnySizeImageAsNon5551BytesWithRequest:library:format:bestFormat:optimalSourcePixelSize:sync:fireAndForgetCPLDownload:completionHandler:] + 4984
1400 Photos                         0x1902d5ca8 -[PHCoreImageManager _processImageRequest:sync:] + 3356
1401 Photos                         0x1902da620 -[PHImageManager requestSynchronousImageForAsset:targetSize:contentMode:options:completionHandler:] + 352
1402 Photos                         0x1902dfc78 -[PHImageManager requestImageDataForAsset:options:resultHandler:] + 368
1403 DKImagePickerController        0x100b1c210 specialized DKImageManager.fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> () (DKImageManager.swift:141)
1404 DKImagePickerController        0x100b1d6f8 specialized DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift:136)
1405 DKImagePickerController        0x100b1ad70 DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1406 DKImagePickerController        0x100b1cdbc partial apply for DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1407 DKImagePickerController        0x100b1af04 thunk (DKImageManager.swift)
1408 Photos                         0x1902dfff8 __65-[PHImageManager requestImageDataForAsset:options:resultHandler:]_block_invoke + 384
1409 Photos                         0x1902cce74 -[PHCoreImageManager _fetchAnySizeImageAsNon5551BytesWithRequest:library:format:bestFormat:optimalSourcePixelSize:sync:fireAndForgetCPLDownload:completionHandler:] + 4984
1410 Photos                         0x1902d5ca8 -[PHCoreImageManager _processImageRequest:sync:] + 3356
1411 Photos                         0x1902da620 -[PHImageManager requestSynchronousImageForAsset:targetSize:contentMode:options:completionHandler:] + 352
1412 Photos                         0x1902dfc78 -[PHImageManager requestImageDataForAsset:options:resultHandler:] + 368
1413 DKImagePickerController        0x100b1c210 specialized DKImageManager.fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> () (DKImageManager.swift:141)
1414 DKImagePickerController        0x100b1d6f8 specialized DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift:136)
1415 DKImagePickerController        0x100b1ad70 DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1416 DKImagePickerController        0x100b1cdbc partial apply for DKImageManager.(fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> ()).(closure #1) (DKImageManager.swift)
1417 DKImagePickerController        0x100b1af04 thunk (DKImageManager.swift)
1418 Photos                         0x1902dfff8 __65-[PHImageManager requestImageDataForAsset:options:resultHandler:]_block_invoke + 384
1419 Photos                         0x1902cce74 -[PHCoreImageManager _fetchAnySizeImageAsNon5551BytesWithRequest:library:format:bestFormat:optimalSourcePixelSize:sync:fireAndForgetCPLDownload:completionHandler:] + 4984
1420 Photos                         0x1902d5ca8 -[PHCoreImageManager _processImageRequest:sync:] + 3356
1421 Photos                         0x1902da620 -[PHImageManager requestSynchronousImageForAsset:targetSize:contentMode:options:completionHandler:] + 352
1422 Photos                         0x1902dfc78 -[PHImageManager requestImageDataForAsset:options:resultHandler:] + 368
1423 DKImagePickerController        0x100b1c210 specialized DKImageManager.fetchImageDataForAsset(DKAsset, options : PHImageRequestOptions?, completeBlock : (Data?, [AnyHashable : Any]?) -> ()) -> () (DKImageManager.swift:141)
1424 DKImagePickerController        0x100aea604 specialized DKAsset.fetchOriginalImage(Bool, completeBlock : (UIImage?, [AnyHashable : Any]?) -> ()) -> () + 264
1425 DKImagePickerController        0x100ae7094 DKAsset.fetchOriginalImage(Bool, completeBlock : (UIImage?, [AnyHashable : Any]?) -> ()) -> () (DKAsset.swift)
1426 MyApp                          0x1000eee78 specialized GalleryManagerCollectionViewController.(showUploadPopup() -> ()).(closure #2).(closure #1).(closure #1).(closure #1) (GalleryManagerCollectionViewController.swift:237)
1427 MyApp                          0x1000efb98 partial apply for GalleryManagerCollectionViewController.(showUploadPopup() -> ()).(closure #2).(closure #1).(closure #1).(closure #1) (GalleryManagerCollectionViewController.swift)
1428 libdispatch.dylib              0x1833ee9e0 _dispatch_call_block_and_release + 24
1429 libdispatch.dylib              0x1833ee9a0 _dispatch_client_callout + 16
1430 libdispatch.dylib              0x1833fb604 _dispatch_continuation_pop + 448
1431 libdispatch.dylib              0x1833fb338 _dispatch_async_redirect_invoke + 608
1432 libdispatch.dylib              0x1833fea50 _dispatch_root_queue_drain + 540
1433 libdispatch.dylib              0x1833fe7d0 _dispatch_worker_thread3 + 124
1434 libsystem_pthread.dylib        0x1835f7100 _pthread_wqthread + 1096
1435 libsystem_pthread.dylib        0x1835f6cac start_wqthread + 4

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 15 (11 by maintainers)

Most upvoted comments

Thanks!