Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-123843

Swipping with three finger between apps may cause a crash after interacting with a text input field

    XMLWordPrintable

Details

    • iOS/tvOS/watchOS

    Description

      We have discovered this tricky little bug that happens when you use the three finger swipe gesture to swap between apps on iOS. If you interact with an input field, close it, and then start swapping between apps, it is very likely that the app will crash with the following stack track:

       

      • thread #1, queue = ‘com.apple.main-thread’, stop reason = EXC_BAD_ACCESS (code=1, address=0xd3e776770)
        frame #0: 0x00000001acdc5814 libobjc.A.dylib`objc_msgSend + 20
        frame #1: 0x00000001ae359984 Foundation`-[_NSUndoStack popAndInvoke] + 112
        frame #2: 0x00000001ae35893c Foundation`-[NSUndoManager __redoCommonDoSingle:] + 180
        frame #3: 0x00000001b65e3ca8 UIKitCore`-[UIUndoGestureInteraction redo:] + 40
        frame #4: 0x00000001b65e36a0 UIKitCore`-[UIUndoGestureInteraction performActionWithDirection:] + 92
        frame #5: 0x00000001b65e3420 UIKitCore`-[UIUndoGestureInteraction _endPanWithDirection:] + 36
        frame #6: 0x00000001b65e37e0 UIKitCore`-[UIUndoGestureInteraction performGestureWithDirection:authenticationMessage:] + 116
        frame #7: 0x00000001b5fd514c UIKitCore`-[_UIProductivityGestureAction _handleActionForWindowScene:] + 264
        frame #8: 0x00000001b5dd891c UIKitCore`-[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion:] + 3048
        frame #9: 0x00000001b5bff48c UIKitCore`-[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 404
        frame #10: 0x00000001b5bff25c UIKitCore`-[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 220
        frame #11: 0x00000001b5bff0b8 UIKitCore`-[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 308
        frame #12: 0x00000001c85715dc FrontBoardServices`-[FBSScene updater:didReceiveActions:] + 248
        frame #13: 0x00000001c8551e38 FrontBoardServices`-[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 160
        frame #14: 0x00000001c8589260 FrontBoardServices`__48-[FBSWorkspaceScenesClient sceneID:sendActions:]_block_invoke + 188
        frame #15: 0x00000001059dd7a0 libdispatch.dylib`_dispatch_client_callout + 16
        frame #16: 0x00000001059e0c84 libdispatch.dylib`_dispatch_block_invoke_direct + 228
        frame #17: 0x00000001c855b34c FrontBoardServices`_FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK_ + 44
        frame #18: 0x00000001c855af88 FrontBoardServices`-[FBSSerialQueue _targetQueue_performNextIfPossible] + 176
        frame #19: 0x00000001c855d53c FrontBoardServices`-[FBSSerialQueue _performNextFromRunLoopSource] + 24
        frame #20: 0x00000001b3b39154 CoreFoundation`_CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION_ + 24
        frame #21: 0x00000001b3b44dc8 CoreFoundation`__CFRunLoopDoSource0 + 172
        frame #22: 0x00000001b3ad0044 CoreFoundation`__CFRunLoopDoSources0 + 232
        frame #23: 0x00000001b3ae51b8 CoreFoundation`__CFRunLoopRun + 784
        frame #24: 0x00000001b3ae9da0 CoreFoundation`CFRunLoopRunSpecific + 584
        frame #25: 0x00000001ea5fb998 GraphicsServices`GSEventRunModal + 160
        frame #26: 0x00000001b5d7efd8 UIKitCore`-[UIApplication _run] + 868
        frame #27: 0x00000001b5d7ec50 UIKitCore`UIApplicationMain + 312
      • frame #28: 0x0000000100d46554 swipe_test`qt_main_wrapper(argc=1, argv=0x000000016f0cf860) at qioseventdispatcher.mm:206:16
        frame #29: 0x00000001d122f344 dyld`start + 1860
         
        I have attached an example to help reproduce the problem and a video showing the screen recording. In this case, the app crashes in just two swipes. 

      I have attached two more screenshots of common stack traces that I believe are related with this bug.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            sinosoidal Nuno Santos
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes