DynamicBlurView icon indicating copy to clipboard operation
DynamicBlurView copied to clipboard

Crash within the Blur Layer

Open Skyb0rg opened this issue 4 years ago • 18 comments

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

Thread 0 Crashed: 0 CoreGraphics 0x00000001ed830ddc CGColorGetAlpha + 12 1 QuartzCore 0x00000001f0086bf4 -[CALayer _renderBorderInContext:] + 144 2 QuartzCore 0x00000001f0088b5c -[CALayer renderInContext:] + 1396 3 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 4 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 5 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 6 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 7 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 8 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 9 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 10 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 11 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 12 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 13 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 14 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 15 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 16 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 17 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 18 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 19 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 20 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 21 QuartzCore 0x00000001f0086ea4 -[CALayer _renderSublayersInContext:] + 368 22 QuartzCore 0x00000001f0088b48 -[CALayer renderInContext:] + 1376 23 DynamicBlurView 0x00000001060da560 DynamicBlurView.BlurLayer.render(in: __C.CGContextRef, for: __C.CALayer) -> () (BlurLayer.swift:94) 24 DynamicBlurView 0x00000001060df684 DynamicBlurView.DynamicBlurView.(snapshotImage in _2044C6510BFEB36C5566C936E3D26E26)(for: __C.CALayer, conversion: Swift.Bool) -> __C.UIImage? (DynamicBlurView.swift:142) 25 DynamicBlurView 0x00000001060dffd8 function signature specialization <Arg[0] = Dead> of DynamicBlurView.DynamicBlurView.display(__C.CALayer) -> () (DynamicBlurView.swift:156) 26 DynamicBlurView 0x00000001060df7b4 @objc DynamicBlurView.DynamicBlurView.display(__C.CALayer) -> () (:0) 27 DynamicBlurView 0x00000001060df934 DynamicBlurView.DynamicBlurView.refresh() -> () (DynamicBlurView.swift:180) 28 PopupDialog 0x000000010ae77240 PopupDialog.PresentationController.containerViewWillLayoutSubviews() -> () (PresentationController.swift:58) 29 PopupDialog 0x000000010ae77288 merged @objc PopupDialog.PresentationController.presentationTransitionWillBegin() -> () + 24 30 UIKitCore 0x0000000219386fe4 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1116 31 libobjc.A.dylib 0x00000001eacab454 -[NSObject performSelector:withObject:] + 64 32 QuartzCore 0x00000001f0083db4 -[CALayer layoutSublayers] + 184 33 QuartzCore 0x00000001f00840a0 CA::Layer::layout_if_needed(CA::Transaction*) + 332 34 QuartzCore 0x00000001f0083f1c -[CALayer layoutIfNeeded] + 228 35 QuartzCore 0x00000001f0088690 -[CALayer renderInContext:] + 168 36 DynamicBlurView 0x00000001060da560 DynamicBlurView.BlurLayer.render(in: __C.CGContextRef, for: __C.CALayer) -> () (BlurLayer.swift:94) 37 DynamicBlurView 0x00000001060df684 DynamicBlurView.DynamicBlurView.(snapshotImage in _2044C6510BFEB36C5566C936E3D26E26)(for: __C.CALayer, conversion: Swift.Bool) -> __C.UIImage? (DynamicBlurView.swift:142) 38 DynamicBlurView 0x00000001060de828 DynamicBlurView.DynamicBlurView.didMoveToWindow() -> () (DynamicBlurView.swift:86) 39 DynamicBlurView 0x00000001060de944 merged @objc DynamicBlurView.DynamicBlurView.didMoveToWindow() -> () + 24 40 UIKitCore 0x000000021937e288 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1604 41 UIKitCore 0x000000021937dedc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 664 42 UIKitCore 0x00000002193712ac __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 156 43 Foundation 0x00000001ec437634 -[NSISEngine withBehaviors:performModifications:] + 112 44 UIKitCore 0x000000021937118c -[UIView(Hierarchy) _postMovedFromSuperview:] + 816 45 UIKitCore 0x0000000219380d20 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1740 46 PopupDialog 0x000000010ae76d74 PopupDialog.PresentationController.presentationTransitionWillBegin() -> () (PresentationController.swift:40) 47 PopupDialog 0x000000010ae77288 merged @objc PopupDialog.PresentationController.presentationTransitionWillBegin() -> () + 24 48 UIKitCore 0x000000021882dc8c __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 2224 49 UIKitCore 0x000000021882b6e0 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 468 50 UIKitCore 0x000000021890fa64 __40+[UIViewController _scheduleTransition:]_block_invoke + 24 51 UIKitCore 0x0000000218edd1fc _runAfterCACommitDeferredBlocks + 300 52 UIKitCore 0x0000000218ecb3bc _cleanUpAfterCAFlushAndRunDeferredBlocks + 352 53 UIKitCore 0x0000000218ef9a3c _afterCACommitHandler + 116 54 CoreFoundation 0x00000001eba3a0e8 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 32 55 CoreFoundation 0x00000001eba34be0 __CFRunLoopDoObservers + 412 56 CoreFoundation 0x00000001eba35140 __CFRunLoopRun + 1208 57 CoreFoundation 0x00000001eba34964 CFRunLoopRunSpecific + 448 58 GraphicsServices 0x00000001edc75d8c GSEventRunModal + 104 59 UIKitCore 0x0000000218ed1758 UIApplicationMain + 212 60 VW-R-CLUB Member APP 0x000000010292ffdc main (AppDelegate.swift:20) 61 libdyld.dylib 0x00000001eb4f0fd8 start + 0

crash report:

func render(in context: CGContext, for layer: CALayer) {
    let layers = hideOverlappingLayers(layer.sublayers)
    layer.render(in: context)    <------------------------------ here
    layers.forEach {
        $0.isHidden = false
    }
}


private func snapshotImage(for layer: CALayer, conversion: Bool) -> UIImage? {
    let rect = blurLayerRect(to: layer, conversion: conversion)
    guard let context = CGContext.imageContext(with: quality, rect: rect, opaque: isOpaque) else {
        return nil
    }

    blurLayer.render(in: context, for: layer)  <------------------------------ here

    defer {
        UIGraphicsEndImageContext()
    }

    return UIGraphicsGetImageFromCurrentImageContext()
}


extension DynamicBlurView {
open override func display(_ layer: CALayer) {
    let blurRadius = blurLayer.presentationRadius
    let isFixes = isDeepRendering && staticImage != nil
    if let view = renderingTarget, let image = staticImage ?? snapshotImage(for: view.layer, conversion: !isFixes) {   <------------------------------ here <Arg[0] = Dead> of DynamicBlurView.DynamicBlurView.display(__C.CALayer) -> () (DynamicBlurView.swift:156)
        draw(image, blurRadius: blurRadius, fixes: isFixes, baseLayer: view.layer)
    }
}

}

extension DynamicBlurView {
/// Remove cache of blur image then get it again.
open func refresh() {
    blurLayer.refresh()
    staticImage = nil
    blurRatio = 1
    display(layer) <------------------------------ here
}

Hope you can help me to fix it.

The crash only happens sometimes.

Skyb0rg avatar Jul 29 '19 13:07 Skyb0rg

Another Crash Today:

Code Type: ARM-64 Parent Process: ??? [1]

Date/Time: 2019-08-26T15:02:54Z Launch Time: 2019-08-25T20:16:13Z OS Version: iPhone OS 12.4 (16G77) Report Version: 104

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

Thread 0 Crashed: 0 CoreGraphics 0x00000001ad268ddc CGColorGetAlpha + 12 1 QuartzCore 0x00000001afabebf4 -[CALayer _renderBorderInContext:] + 144 2 QuartzCore 0x00000001afac0b5c -[CALayer renderInContext:] + 1396 3 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 4 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 5 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 6 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 7 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 8 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 9 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 10 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 11 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 12 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 13 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 14 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 15 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 16 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 17 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 18 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 19 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 20 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 21 QuartzCore 0x00000001afabeea4 -[CALayer _renderSublayersInContext:] + 368 22 QuartzCore 0x00000001afac0b48 -[CALayer renderInContext:] + 1376 23 DynamicBlurView 0x0000de8103716bb4 0x103710000 + 27572 24 DynamicBlurView 0x000000010371de28 0x103710000 + 56872 25 DynamicBlurView 0x000000010371e32c 0x103710000 + 58156 26 DynamicBlurView 0x000000010371e484 0x103710000 + 58500 27 DynamicBlurView 0x000000010371e6d0 0x103710000 + 59088 28 PopupDialog 0x0000000107235330 0x107210000 + 152368 29 PopupDialog 0x0000000107235384 0x107210000 + 152452 30 UIKitCore 0x00000001d8dbefe4 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1116 31 libobjc.A.dylib 0x00000001aa6e3454 -[NSObject performSelector:withObject:] + 64 32 QuartzCore 0x00000001afabbdb4 -[CALayer layoutSublayers] + 184 33 QuartzCore 0x00000001afabc0a0 CA::Layer::layout_if_needed(CA::Transaction*) + 332 34 QuartzCore 0x00000001afabbf1c -[CALayer layoutIfNeeded] + 228 35 QuartzCore 0x00000001afac0690 -[CALayer renderInContext:] + 168 36 DynamicBlurView 0x006d9b8103716bb4 0x103710000 + 27572 37 DynamicBlurView 0x000000010371de28 0x103710000 + 56872 38 DynamicBlurView 0x000000010371cbc8 0x103710000 + 52168 39 DynamicBlurView 0x000000010371cc30 0x103710000 + 52272 40 UIKitCore 0x00000001d8db6288 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1604 41 UIKitCore 0x00000001d8db5edc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 664 42 UIKitCore 0x00000001d8da92ac __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 156 43 Foundation 0x00000001abe6f634 -[NSISEngine withBehaviors:performModifications:] + 112 44 UIKitCore 0x00000001d8da918c -[UIView(Hierarchy) _postMovedFromSuperview:] + 816 45 UIKitCore 0x00000001d8db8d20 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1740 46 PopupDialog 0x007ca581072349b4 0x107210000 + 149940 47 PopupDialog 0x0000000107234dec 0x107210000 + 151020 48 UIKitCore 0x00000001d8265c8c __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 2224 49 UIKitCore 0x00000001d82636e0 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 468 50 UIKitCore 0x00000001d8347a64 __40+[UIViewController _scheduleTransition:]_block_invoke + 24 51 UIKitCore 0x00000001d89151fc _runAfterCACommitDeferredBlocks + 300 52 UIKitCore 0x00000001d89033bc _cleanUpAfterCAFlushAndRunDeferredBlocks + 352 53 UIKitCore 0x00000001d8931a3c _afterCACommitHandler + 116 54 CoreFoundation 0x00000001ab4720e8 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 32 55 CoreFoundation 0x00000001ab46cbe0 __CFRunLoopDoObservers + 412 56 CoreFoundation 0x00000001ab46d140 __CFRunLoopRun + 1208 57 CoreFoundation 0x00000001ab46c964 CFRunLoopRunSpecific + 448 58 GraphicsServices 0x00000001ad6add8c GSEventRunModal + 104 59 UIKitCore 0x00000001d8909758 UIApplicationMain + 212 60 VW-R-CLUB Member APP 0x0040548102a583a0 0x1024c8000 + 5833632 61 libdyld.dylib 0x00000001aaf28fd8 start + 0

Skyb0rg avatar Aug 26 '19 18:08 Skyb0rg

Maybee thispictures can help to find the bug:

Bildschirmfoto 2019-09-02 um 16 07 04 Bildschirmfoto 2019-09-02 um 16 06 46

Skyb0rg avatar Sep 02 '19 14:09 Skyb0rg

@Skyb0rg I appreciate your cooperation.

KyoheiG3 avatar Sep 03 '19 12:09 KyoheiG3

Even i am getting crashes of same sort.

Device : iPhone XS MAX OS : 13.1.0 (17A5821e) - beta

talk2cerlin avatar Sep 05 '19 05:09 talk2cerlin

Please did you find a fix for this for this? Currently faced with same issue in OS 13

ehizokhai avatar Mar 10 '20 10:03 ehizokhai

I removed the blur layer

Skyb0rg avatar Mar 10 '20 21:03 Skyb0rg

@Skyb0rg please how did you remove it? i tried commenting this part out addSubview(blurView) in popupdialogueoverlay.swift but it didnt work

ehizokhai avatar Mar 10 '20 21:03 ehizokhai

I wrote a manual for removing in issues of popupdialog.

Skyb0rg avatar Mar 10 '20 22:03 Skyb0rg

Please can i get a link to the manual

ehizokhai avatar Mar 10 '20 22:03 ehizokhai

Please can i get a link to the manual

https://github.com/Orderella/PopupDialog/issues/324#issuecomment-527160062

Skyb0rg avatar Mar 10 '20 22:03 Skyb0rg

Ok. it works well man. Thanks

ehizokhai avatar Mar 10 '20 23:03 ehizokhai

Hi @Skyb0rg @ehizokhai @talk2cerlin . Can anybody try https://github.com/KyoheiG3/PopupDialog/tree/update-module ? I tried updating DynamicBlurView to fix https://github.com/Orderella/PopupDialog/issues/324 but I'm not sure if it was fixed. I couldn't get this problem to occur.

Changes your Podfile following:

pod 'PopupDialog', :git => 'https://github.com/KyoheiG3/PopupDialog.git', :branch => 'update-module'

Thanks.

KyoheiG3 avatar Apr 22 '20 08:04 KyoheiG3

Hi @KyoheiG3 I tried your fork. It doesn't help :( The app still crashes with iOS 12. Steps to reproduce:

  • show popup
  • move app to background
  • move back to app

ivulyov90 avatar Jun 12 '20 14:06 ivulyov90

Hi @KyoheiG3 Any updates here?

ivulyov90 avatar Jun 22 '20 13:06 ivulyov90

Hi @ivulyov90 Thank you for the details. I will check it.

KyoheiG3 avatar Jun 23 '20 17:06 KyoheiG3

Could you retry after git pull or pod update? When it, please check Podfile.lock to see if DynamicBlurView version is 5.0.3. Thank you for your time @ivulyov90.

KyoheiG3 avatar Jun 23 '20 18:06 KyoheiG3

I was able to reproduce the issue in Xcode 12 beta 6 on a Simulated iOS 14 device - however, when building on a physical device running iOS 14.0, there are no issues 🤷‍♂️

I've tested with the pointer set to the update-module branch.

Screenshot 2020-09-06 at 08 51 54

loevborg avatar Sep 12 '20 18:09 loevborg

I am getting also random crashes in production ..

phisakel avatar Oct 14 '20 11:10 phisakel