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

QtActivityDelegate is started twice when running QML based autotests

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 6.7
    • QPA: Android
    • None
    • Android
    • 2023wk50FOQtforAndroid, 2023wk52FOQtforAndroid, 2024wk02FOQtforAndroid, 2024wk04FOQtforAndroid, 2024wk08FOQtforAndroid, 2024wk16FOQtforAndroid

    Description

      When running QtAA's QML autotests, e.g

      ctest -V -L tst_bc_docs_snippets_qml

      the test sometimes passes, but quite often it gets stuck (until timeout), and when this happened I could see in logcat that QtActivityDelegate's initMembers() was called twice, which in turn caused two QtLayouts to be created, and only the first one was used in prints after that. 

      12-05 16:13:13.217  3841  3865 I QtCore  : Start
      12-05 16:13:13.228  3841  3865 I Qt      : qt started 
      12-05 16:13:13.229  3841  3841 V QtActivityDelegate   : initMembers 
      12-05 16:13:13.229  3841  3841 V QtActivityDelegate   : m_layout: 9fb67a21-64a1-476e-a8d9-18f1ad7be66a
      12-05 16:13:13.239   667  3723 D CoreBackPreview: Window{a251aac u10 org.qtproject.example.tst_bc_docs_snippets_qml/org.qtproject.qt.android.bindings.QtActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@7f77f0a, mPriority=0}
      12-05 16:13:13.240   667  3723 D CoreBackPreview: Window{a251aac u10 org.qtproject.example.tst_bc_docs_snippets_qml/org.qtproject.qt.android.bindings.QtActivity}: Setting back callback null
      12-05 16:13:13.241   667  1369 W InputManager-JNI: Input channel object 'a251aac org.qtproject.example.tst_bc_docs_snippets_qml/org.qtproject.qt.android.bindings.QtActivity (client)' was disposed without first being removed with the input manager!
      12-05 16:13:13.258   456   493 W TransactionTracing: Could not find layer handle 0x77836071c210
      12-05 16:13:13.275  3841  3841 V QtActivityDelegate   : initMembers
      12-05 16:13:13.275  3841  3841 V QtActivityDelegate   : m_layout: 162ac59b-d7af-4e35-9922-149f3b979b16
      12-05 16:13:13.282   667  3723 D CoreBackPreview: Window{2a8ac57 u10 org.qtproject.example.tst_bc_docs_snippets_qml/org.qtproject.qt.android.bindings.QtActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@fc51c2d, mPriority=0}

      After this there were these prints  in logcat, possibly related:

      12-05 16:13:13.393  3841  3841 E ActivityThread: Activity org.qtproject.qt.android.bindings.QtActivity has leaked IntentReceiver io.qt.androidautomotive.androiduserprofiles.QtAndroidUserProfiles$1@97b1553 that was originally registered here. Are you missing a call to unregisterReceiver()?
      12-05 16:13:13.393  3841  3841 E ActivityThread: android.app.IntentReceiverLeaked: Activity org.qtproject.qt.android.bindings.QtActivity has leaked IntentReceiver io.qt.androidautomotive.androiduserprofiles.QtAndroidUserProfiles$1@97b1553 that was originally registered here. Are you missing a call to unregisterReceiver()?
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1828)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1601)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1798)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiver(ContextImpl.java:1750)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiver(ContextImpl.java:1738)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:747)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at io.qt.androidautomotive.androiduserprofiles.QtAndroidUserProfiles.registerBroadcastListener(QtAndroidUserProfiles.java:78)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at java.lang.Runtime.nativeLoad(Native Method)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at java.lang.Runtime.nativeLoad(Runtime.java:1121)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at java.lang.Runtime.load0(Runtime.java:927)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at java.lang.System.load(System.java:1625)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader.loadLibraryHelper(QtLoader.java:421)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader.access$000(QtLoader.java:27)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader$2.run(QtLoader.java:496)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtThread$2.run(QtThread.java:51)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtThread$1.run(QtThread.java:25)
      12-05 16:13:13.393  3841  3841 E ActivityThread:     at java.lang.Thread.run(Thread.java:1012)
      12-05 16:13:13.394  3841  3841 E ActivityThread: Activity org.qtproject.qt.android.bindings.QtActivity has leaked IntentReceiver io.qt.androidautomotive.androidappsutils.QtAndroidAppsUtils$2@9954142 that was originally registered here. Are you missing a call to unregisterReceiver()?
      12-05 16:13:13.394  3841  3841 E ActivityThread: android.app.IntentReceiverLeaked: Activity org.qtproject.qt.android.bindings.QtActivity has leaked IntentReceiver io.qt.androidautomotive.androidappsutils.QtAndroidAppsUtils$2@9954142 that was originally registered here. Are you missing a call to unregisterReceiver()?
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1828)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1601)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1798)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiver(ContextImpl.java:1750)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiver(ContextImpl.java:1738)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:747)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at io.qt.androidautomotive.androidappsutils.QtAndroidAppsUtils.registerBroadcastReceivers(QtAndroidAppsUtils.java:79)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at java.lang.Runtime.nativeLoad(Native Method)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at java.lang.Runtime.nativeLoad(Runtime.java:1121)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at java.lang.Runtime.load0(Runtime.java:927)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at java.lang.System.load(System.java:1625)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader.loadLibraryHelper(QtLoader.java:421)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader.access$000(QtLoader.java:27)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader$2.run(QtLoader.java:496)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtThread$2.run(QtThread.java:51)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtThread$1.run(QtThread.java:25)
      12-05 16:13:13.394  3841  3841 E ActivityThread:     at java.lang.Thread.run(Thread.java:1012)
      12-05 16:13:13.395  3841  3841 E ActivityThread: Activity org.qtproject.qt.android.bindings.QtActivity has leaked IntentReceiver io.qt.androidautomotive.androidappsutils.QtAndroidAppsUtils$1@bf3fb8d that was originally registered here. Are you missing a call to unregisterReceiver()?
      12-05 16:13:13.395  3841  3841 E ActivityThread: android.app.IntentReceiverLeaked: Activity org.qtproject.qt.android.bindings.QtActivity has leaked IntentReceiver io.qt.androidautomotive.androidappsutils.QtAndroidAppsUtils$1@bf3fb8d that was originally registered here. Are you missing a call to unregisterReceiver()?
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1828)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1601)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1798)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiver(ContextImpl.java:1750)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at android.app.ContextImpl.registerReceiver(ContextImpl.java:1738)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:747)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at io.qt.androidautomotive.androidappsutils.QtAndroidAppsUtils.registerBroadcastReceivers(QtAndroidAppsUtils.java:52)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at java.lang.Runtime.nativeLoad(Native Method)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at java.lang.Runtime.nativeLoad(Runtime.java:1121)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at java.lang.Runtime.load0(Runtime.java:927)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at java.lang.System.load(System.java:1625)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader.loadLibraryHelper(QtLoader.java:421)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader.access$000(QtLoader.java:27)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtLoader$2.run(QtLoader.java:496)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtThread$2.run(QtThread.java:51)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at org.qtproject.qt.android.QtThread$1.run(QtThread.java:25)
      12-05 16:13:13.395  3841  3841 E ActivityThread:     at java.lang.Thread.run(Thread.java:1012)

      I used module versions from https://codereview.qt-project.org/gitweb?p=qt/tqtc-android-automotive.git;a=commitdiff;h=982a58e204e18e168b6ea8402dd4dd0d82902d12;hp=277e479c283c2fa6dde1c68a098e283cbd7e999f.

      Attachments

        Issue Links

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

          Activity

            People

              assam Assam Boudjelthia
              jannej Janne Juntunen
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes