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

[Android]: When sending the application into the background while capturing an image from the camera can cause a crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.9
    • 5.5.1, 5.6.0
    • Multimedia
    • Android 6.0.1 - Nexus 6

    Description

      [Android]: When sending the application into the background while capturing an image from the camera can cause a crash.

      Reproducible with the declarative-camera example and the stack is:

      1	AndroidCamera::startPreview()			0x9bd12bae	
      2	QAndroidCameraSession::onCameraPictureCaptured(QByteArray const&)			0x9bd1c1d2	
      3	QMetaCallEvent::placeMetaCall(QObject *)			0xaee6a512	
      4	QObject::event(QEvent *)			0xaee6ce96	
      5	QApplicationPrivate::notify_helper(QObject *, QEvent *)			0x9bee85a2	
      6	QApplication::notify(QObject *, QEvent *)			0x9beebc12	
      7	QCoreApplication::notifyInternal2(QObject *, QEvent *)			0xaee4e258	
      8	QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *)			0xaee504a2	
      9	QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)			0xaee8371c	
      10	QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)			0x9bd5cff0	
      11	QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)			0xaee4d02c	
      12	QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)			0xaee4d646	
      13	QCoreApplication::exec()			0xaee5288c	
      14	main	main.cpp	77	0x9ac9cb74	
      15	startMainMethod(void *)			0x9bd4d6c0	
      16	__pthread_start(void *)			0xb6d5c460	
      17	__start_thread			0xb6d36b44	
      18	??				
      

      with the output on the console:

      

      Debugging starts
      I art     : Late-enabling -Xcheck:jni
      W System  : ClassLoader referenced unknown path:
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Network.so: unused DT entry: type 0xf arg 0x119c9
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Network.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Qml.so: unused DT entry: type 0xf arg 0x33c4c
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Gui.so: unused DT entry: type 0xf arg 0x5042f
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Gui.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Quick.so: unused DT entry: type 0xf arg 0x3d1ac
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Quick.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Multimedia.so: unused DT entry: type 0xf arg 0x18ed3
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5Multimedia.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5QuickParticles.so: unused DT entry: type 0xf arg 0x365b
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5QuickParticles.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5MultimediaQuick_p.so: unused DT entry: type 0xf arg 0x3256
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libQt5MultimediaQuick_p.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: unused DT entry: type 0xf arg 0x9260
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: is missing DT_SONAME will use basename as a replacement: "libqtforandroid.so"
      I Qt      : qt start
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/bearer/libqandroidbearer.so: unused DT entry: type 0xf arg 0x1746
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/bearer/libqandroidbearer.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/bearer/libqandroidbearer.so: is missing DT_SONAME will use basename as a replacement: "libqandroidbearer.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/mediaservice/libqtmedia_android.so: unused DT entry: type 0xf arg 0x5271
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/mediaservice/libqtmedia_android.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/mediaservice/libqtmedia_android.so: is missing DT_SONAME will use basename as a replacement: "libqtmedia_android.so"
      W linker  : /data/app/org.qtproject.example.declarative_camera-1/lib/arm/libdeclarative-camera.so: unused DT entry: type 0x1d arg 0x5ec
      D         : (null):0 ((null)): QML debugging is enabled. Only use this in a safe environment.
      I Qt JAVA : DEBUGGER: extra parameters: Bundle[{debug_ping=true, gdbserver_socket=/data/data/org.qtproject.example.declarative_camera/debug-socket, qml_debug=true, gdbserver_command=/data/data/org.qtproject.example.declarative_camera/lib/libgdbserver.so --multi +/data/data/org.qtproject.example.declarative_camera/debug-socket, qmljsdebugger=port:65229,block,services:DebugMessages,QmlDebugger,V8Debugger,QmlInspector, ping_socket=org.qtproject.example.declarative_camera.ping_pong_socket}]
      I Qt JAVA : DEBUGGER: removing gdb socket /data/data/org.qtproject.example.declarative_camera/debug-socket
      I Qt JAVA : DEBUGGER: starting /data/data/org.qtproject.example.declarative_camera/lib/libgdbserver.so --multi +/data/data/org.qtproject.example.declarative_camera/debug-socket
      I Qt JAVA : DEBUGGER: gdbserver started
      I Qt JAVA : DEBUGGER: waiting for socket at /data/data/org.qtproject.example.declarative_camera/debug-socket, attempt 0
      I Qt JAVA : DEBUGGER: waiting for socket at /data/data/org.qtproject.example.declarative_camera/debug-socket, attempt 1
      I Qt JAVA : DEBUGGER: socket ok
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Debug socket accepted
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      Could not load shared library symbols for 116 libraries, e.g. /system/bin/linker.
      Use the "info sharedlibrary" command to see the complete listing.
      Do you need "set solib-search-path" or "set sysroot"?Unable to find dynamic linker breakpoint function.
      GDB will be unable to debug shared library initializers
      and track explicitly loaded dynamic code.I Qt JAVA : DEBUGGER: Waiting for debug socket connect
      I Qt JAVA : DEBUGGER: go to sleep
      I Qt JAVA : DEBUGGER: Incoming socket OK
      I Qt JAVA : DEBUGGER: Got pid acknowledgment
      I Qt JAVA : DEBUGGER: ping not requested
      I Qt JAVA : DEBUGGER: pong not requested
      D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
      I Adreno  : QUALCOMM build                   : 52af4d2, I8366cd0437
      I Adreno  : Build Date                       : 10/20/15
      I Adreno  : OpenGL ES Shader Compiler Version: XE031.05.13.02
      I Adreno  : Local Branch                     : M14
      I Adreno  : Remote Branch                    :
      I Adreno  : Remote Branch                    :
      I Adreno  : Reconstruct Branch               :
      I OpenGLRenderer: Initialized EGL, version 1.4
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_server.so: unused DT entry: type 0xf arg 0x16fc
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_server.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_server.so: is missing DT_SONAME will use basename as a replacement: "libqmldbg_server.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_debugger.so: unused DT entry: type 0xf arg 0x39ea
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_debugger.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_debugger.so: is missing DT_SONAME will use basename as a replacement: "libqmldbg_debugger.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_inspector.so: unused DT entry: type 0xf arg 0x2329
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_inspector.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_inspector.so: is missing DT_SONAME will use basename as a replacement: "libqmldbg_inspector.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_tcp.so: unused DT entry: type 0xf arg 0x767
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_tcp.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/qmltooling/libqmldbg_tcp.so: is missing DT_SONAME will use basename as a replacement: "libqmldbg_tcp.so"
      D libdeclarative-camera.so: (null):0 ((null)): QML Debugger: Waiting for connection on port 65229...
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so: unused DT entry: type 0xf arg 0x4bd
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so: is missing DT_SONAME will use basename as a replacement: "libqtquick2plugin.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/qml/QtMultimedia/libdeclarative_multimedia.so: unused DT entry: type 0xf arg 0x55db
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/qml/QtMultimedia/libdeclarative_multimedia.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/qml/QtMultimedia/libdeclarative_multimedia.so: is missing DT_SONAME will use basename as a replacement: "libdeclarative_multimedia.so"
      W libdeclarative-camera.so: qrc:///VideoCaptureControls.qml:110 ((null)): qrc:///VideoCaptureControls.qml:110: Error: Cannot assign [undefined] to QString
      W libdeclarative-camera.so: qrc:///CameraListButton.qml:65 ((null)): qrc:///CameraListButton.qml:65:5: QML CameraListPopup: Binding loop detected for property "currentValue"
      W libdeclarative-camera.so: qrc:///PhotoCaptureControls.qml:135 ((null)): qrc:///PhotoCaptureControls.qml:135: Error: Cannot assign [undefined] to QString
      W libdeclarative-camera.so: qrc:///CameraListButton.qml:65 ((null)): qrc:///CameraListButton.qml:65:5: QML CameraListPopup: Binding loop detected for property "currentValue"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/video/videonode/libqtsgvideonode_android.so: unused DT entry: type 0xf arg 0xb11
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/video/videonode/libqtsgvideonode_android.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/video/videonode/libqtsgvideonode_android.so: is missing DT_SONAME will use basename as a replacement: "libqtsgvideonode_android.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqdds.so: unused DT entry: type 0xf arg 0xb88
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqdds.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqdds.so: is missing DT_SONAME will use basename as a replacement: "libqdds.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqgif.so: unused DT entry: type 0xf arg 0x7cd
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqgif.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqgif.so: is missing DT_SONAME will use basename as a replacement: "libqgif.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqicns.so: unused DT entry: type 0xf arg 0xccf
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqicns.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqicns.so: is missing DT_SONAME will use basename as a replacement: "libqicns.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqico.so: unused DT entry: type 0xf arg 0xb06
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqico.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqico.so: is missing DT_SONAME will use basename as a replacement: "libqico.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqjpeg.so: unused DT entry: type 0xf arg 0x10e8
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqjpeg.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqjpeg.so: is missing DT_SONAME will use basename as a replacement: "libqjpeg.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqtga.so: unused DT entry: type 0xf arg 0x8cd
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqtga.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqtga.so: is missing DT_SONAME will use basename as a replacement: "libqtga.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqtiff.so: unused DT entry: type 0xf arg 0xc67
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqtiff.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqtiff.so: is missing DT_SONAME will use basename as a replacement: "libqtiff.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqwbmp.so: unused DT entry: type 0xf arg 0x996
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqwbmp.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqwbmp.so: is missing DT_SONAME will use basename as a replacement: "libqwbmp.so"
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqwebp.so: unused DT entry: type 0xf arg 0xa8a
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqwebp.so: unsupported flags DT_FLAGS_1=0x81
      W linker  : /data/data/org.qtproject.example.declarative_camera/qt-reserved-files/plugins/imageformats/libqwebp.so: is missing DT_SONAME will use basename as a replacement: "libqwebp.so"
      D Camera  : app passed NULL surface
      D Camera  : app passed NULL surface
      W libdeclarative-camera.so: (null):0 ((null)): Can't find surface 1
      W libdeclarative-camera.so: (null):0 ((null)): Can't find surface 1
      D Camera  : app passed NULL surface
      D Camera  : app passed NULL surface
      W libdeclarative-camera.so: (null):0 ((null)): Can't find surface 2
      W libdeclarative-camera.so: (null):0 ((null)): Can't find surface 2
      D Camera  : app passed NULL surface
      D Camera  : app passed NULL surface
      W Camera-JNI: callback on dead camera object
      W Camera-JNI: callback on dead camera object
      W Camera-JNI: callback on dead camera object
      W libdeclarative-camera.so: (null):0 ((null)): Can't find surface 3
      W libdeclarative-camera.so: (null):0 ((null)): Can't find surface 3
      D Camera  : app passed NULL surface
      D Camera  : app passed NULL surface
      

      Attachments

        For Gerrit Dashboard: QTBUG-52366
        # Subject Branch Project Status CR V

        Activity

          People

            valentyn.doroshchuk Valentyn Doroshchuk
            andysh Andy Shaw
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes