This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: QtwebEngine segmentation fault

Part Number: AM5728

Hello Everyone!

I am continue on migration based on my previous steps in https://e2e.ti.com/support/processors/f/791/t/852444 .

My Qt-webbased is still crashing with "Segmentation fault/memory corruption" pointing to OpenGL driver.

  • Current  setup
    • Environment setup
      • QT: 5.12.5
      • Linux kernel: ti-lsk-linux-4.4.113
      • OpenGL: ti-sgx-ddk-um_1.14.3699939
        • hash: 2736a396f9c801fc0818d830f8a3215aeb8b6534
      • Powervr: ti-sgx-ddk-km_1.14.3699939
        • hash: fd47e44b18944cf7ade480ac67a9c0172619ff7e
    • Results
      • Everything is working as expectations.
        • platforms
          • linuxfb – every page is OK
          • eglfs – every page is OK

 

  • Target setup
    • Environment setup
      • QT: 5.12.5
      • PSDK 6.00
      • Linux kernel: psdk-linux-4.19.59
      • OpenGL: ti-sgx-ddk-um_1.17.4948957
        • hash: 87d7e5c1e4db1bab048939c9719059d549c1e8dd
      • Powervr: ti-sgx-ddk-km_1.17.4948957
        • hash: 4519ed3b83d1d72207ddc2874c7eb5e5a7f20d8d
    • Results
      • All other tested webpage are fine expect required internal.
        • platforms
          • linuxfb – every page is OK
          • eglfs – Internal webpage is crashing. (Segmentation fault)

 

  • New setup
    • Environment setup
      • QT: 5.12.5
      • PSDK 6.02

      • Linux kernel: psdk-linux-4.19.73
      • OpenGL: ti-sgx-ddk-um_1.17.4948957
        • hash: 2a2e5bb090ced870d73ed4edbc54793e952cc6d8
      • Powervr: ti-sgx-ddk-km_1.17.4948957
        • hash: 4519ed3b83d1d72207ddc2874c7eb5e5a7f20d8d
    • Results
      • All other tested webpage are fine expect required internal.
        • platforms
          • linuxfb – every page is OK
          • eglfs – raw accessing was removed between upgrade from PSDK6.1 to PSDK6.2
          • eglfs_kms - Internal webpage is crashing. (Segmentation fault)
            • Even if LCPD15587 should be fixed, application is still crashing

After looking into stack backtrace, it’s pointing to “libGLESv2.so.2” library. This library is part of openGL driver developed by Ti. (So no opensource there.)

Compiler with options, QT sources are still the same. Only Kernel and OpenGL have been changed. Linuxfb platform is working on all cases, only OpenGL has problems. I am expecting that application shouldn’t crash on any webpage.

How we can handle this?

Thank you,

Andy

  • Hello Andy,

    In PSDK 6.2, please confirm if you have made the changes mentioned in the following page. Also, please share the crash logs that you are observing.

    Regards,
    Krunal

  • Hello Krunal,

    I am not sure, if you catch what I did. I will try to summarize what I did again.

    Current version (DDK, based on linux kernel 4.4.113 + old OpenGL) is working as expected. I had to fix only missing "eglGetProcAddress" in QtWebEngine.

    diff --git a/src/core/ozone/gl_ozone_egl_qt.cpp b/src/core/ozone/gl_ozone_egl_qt.cpp
    index 2fa86d7..8c9e5cf 100644
    --- a/src/core/ozone/gl_ozone_egl_qt.cpp
    +++ b/src/core/ozone/gl_ozone_egl_qt.cpp
    @@ -38,6 +38,8 @@
     ****************************************************************************/
     
     #if defined(USE_OZONE)
    +#include <QString>
    +
     #include "gl_ozone_egl_qt.h"
     #include "gl_context_qt.h"
     #include "gl_surface_egl_qt.h"
    @@ -53,6 +55,15 @@
     
     
     #include <EGL/egl.h>
    +
    +#ifndef QT_LIBDIR_EGL
    +#define QT_LIBDIR_EGL "/usr/lib"
    +#endif
    +
    +#ifndef QT_LIBDIR_GLES2
    +#define QT_LIBDIR_GLES2 QT_LIBDIR_EGL
    +#endif
    +
     #include <dlfcn.h>
     
     #include <QtGui/qtgui-config.h> // for QT_NO_OPENGL
    @@ -66,6 +77,20 @@ QT_END_NAMESPACE
     
     namespace ui {
     
    +inline base::FilePath::StringType toFilePathString(const QString &str)
    +{
    +#if defined(OS_WIN)
    +    return QDir::toNativeSeparators(str).toStdWString();
    +#else
    +    return str.toStdString();
    +#endif
    +}
    +
    +inline base::FilePath toFilePath(const QString &str)
    +{
    +    return base::FilePath(toFilePathString(str));
    +}
    +
     base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
         base::NativeLibraryLoadError error;
         base::NativeLibrary library = base::LoadNativeLibrary(filename, &error);
    @@ -78,15 +103,25 @@ base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
     
     bool GLOzoneEGLQt::LoadGLES2Bindings(gl::GLImplementation /*implementation*/)
     {
    -    base::NativeLibrary eglgles2Library = dlopen(NULL, RTLD_LAZY);
    -    if (!eglgles2Library) {
    -        LOG(ERROR) << "Failed to open EGL/GLES2 context " << dlerror();
    +    base::FilePath libEGLPath = toFilePath(QT_LIBDIR_EGL);
    +    libEGLPath = libEGLPath.Append("libEGL.so.1");
    +    base::NativeLibrary eglLibrary = LoadLibrary(libEGLPath);
    +    if (!eglLibrary) {
    +        LOG(ERROR) << "Failed to open EGL context " << dlerror();
    +        return false;
    +    }
    +
    +    base::FilePath libGLES2Path = toFilePath(QT_LIBDIR_GLES2);
    +    libGLES2Path = libGLES2Path.Append("libGLESv2.so.2");
    +    base::NativeLibrary gles2Library = LoadLibrary(libGLES2Path);
    +    if (!gles2Library) {
    +        LOG(ERROR) << "Failed to open GLES2 context " << dlerror();
             return false;
         }
     
         gl::GLGetProcAddressProc get_proc_address =
                 reinterpret_cast<gl::GLGetProcAddressProc>(
    -                base::GetFunctionPointerFromNativeLibrary(eglgles2Library,
    +                base::GetFunctionPointerFromNativeLibrary(eglLibrary,
                                                               "eglGetProcAddress"));
     #ifndef QT_NO_OPENGL
         if (!get_proc_address) {
    @@ -100,12 +135,14 @@ bool GLOzoneEGLQt::LoadGLES2Bindings(gl::GLImplementation /*implementation*/)
     
         if (!get_proc_address) {
             LOG(ERROR) << "eglGetProcAddress not found.";
    -        base::UnloadNativeLibrary(eglgles2Library);
    +        base::UnloadNativeLibrary(eglLibrary);
    +        base::UnloadNativeLibrary(gles2Library);
             return false;
         }
     
         gl::SetGLGetProcAddressProc(get_proc_address);
    -    gl::AddGLNativeLibrary(eglgles2Library);
    +    gl::AddGLNativeLibrary(eglLibrary);
    +    gl::AddGLNativeLibrary(gles2Library);
         return true;
     }
     
    -- 
    
    

    First target (PSDK6.1, linux 4.19.59 + new OpenGL) has the same egl address issue as previous version. So I have applied the patch also on this version. My browser application can access pages like google, but it crash on internal. I've just received a Segmentation fault on this page.

    Program terminated with signal SIGSEGV, Segmentation fault.
    The program no longer exists.
    #0  __libc_do_syscall () at libc-do-syscall.S:49
    No locals.
    #1  0xb59f1d88 in __libc_signal_restore_set (set=0xa2c76238) at ../sysdeps/unix/sysv/linux/internal-signals.h:84
            _a2tmp = -1563991496
            _a2 = -1563991496
            _nametmp = 175
            _a3tmp = 0
            _a3 = 0
            _a1 = 0
            _a4tmp = 8
            _a1tmp = 2
            _a4 = 8
            _name = 175
    #2  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:48
            set = {__val = {0 <repeats 32 times>}}
            pid = <optimized out>
            tid = <optimized out>
            ret = <optimized out>
    #3  0xb59e31a4 in __GI_abort () at abort.c:79
            save_stage = 1
            act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0 <repeats 31 times>, 2730976416}}, sa_flags = -1247363165, sa_restorer = 0x1000}
            sigs = {__val = {32, 0 <repeats 31 times>}}
    #4  0xb5a1d6e4 in __libc_message (action=action@entry=do_abort, fmt=<optimized out>) at ../sysdeps/posix/libc_fatal.c:181
            ap = {__ap = 0xa2c764dc}
            fd = 2
            list = <optimized out>
            nlist = <optimized out>
            cp = <optimized out>
            written = <optimized out>
    #5  0xb5a2250e in malloc_printerr (str=<optimized out>) at malloc.c:5336
    No locals.
    #6  0xb5a23c50 in _int_free (av=0xb5acd7e4 <main_arena>, p=0xbf8600, have_lock=<optimized out>) at malloc.c:4267
            size = 104
            fb = <optimized out>
            nextchunk = 0xbf8668
            nextsize = <optimized out>
            nextinuse = <optimized out>
            prevsize = <optimized out>
            bck = <optimized out>
            fwd = <optimized out>
            __PRETTY_FUNCTION__ = "_int_free"
    #7  0xb1579454 in ?? () from target:/usr/lib/libGLESv2.so.2
    No symbol table info available.
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)

    Last target (PSDK6.3, linux 4.19.73 + newest OpenGL) was also not working. Yes, I saw that eglfs raw accessing was dropped. So I have re-configure QT to use the new eglfs_kms method.

    - enabled "gbm kms" QTbase options

    - export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt5/eglfs_kms_cfg.json
    - export QT_QPA_EGLFS_INTEGRATION=eglfs_kms
    - export QT_QPA_EGLFS_ALWAYS_SET_MODE=1

    - set eglfs_kms_cfg.json

    {
      "device": "/dev/dri/card0",
      "hwcursor": false,
      "pbuffers": true,
      "outputs": [
        {
          "name": "VGA1",
          "mode": "off"
        }
      ]
    }

    My application can run after reconfiguration as before with still failing Segmentation error.

    I am still using my "egl address fix". Should I now remove it, but I don't think so...?
    Is there any special config what I need to configure?
    I think, it doesn't mater if I am using PSDK6.3 or not. Because it's still failing on the same error.

    Regards,
    Andy

  • Hi Andy,

    I am discussing the above issue with our developers and I will get back to you in 24 hours. Also, are you observing any issues with the below test:

    root@am57xx-evm:~# /etc/init.d/weston stop 
    root@am57xx-evm:~# /usr/share/qt5/examples/webenginewidgets/simplebrowser/simplebrowser --no-sandbox -platform eglf

    Regards,
    Krunal

  • Hello Krunal,

    I have tested your commands.

    Krunal Bhargav34 said:
    root@am57xx-evm:~# /etc/init.d/weston stop 
    root@am57xx-evm:~# /usr/share/qt5/examples/webenginewidgets/simplebrowser/simplebrowser --no-sandbox -platform eglf

    I am not using weston, so I don't need to stop it.

    I have built an Qt simplebrowser and quicknanobrowser too. Both of browsers have the same segmentation results on the internal webpage. As I said, other pages are fine.

    Anyway simplebrowser has printed some EGLFS warnings during starting-up:

    # /home/qt/simple/simplebrowser -platform eglfs --no-sandbox
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqeglfs.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqeglfs.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "eglfs"
            ]
        },
        "archreq": 0,
        "className": "QEglFSIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqlinuxfb.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqlinuxfb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "linuxfb"
            ]
        },
        "archreq": 0,
        "className": "QLinuxFbIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("linuxfb")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimal.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqminimal.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "archreq": 0,
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimalegl.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqminimalegl.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimalegl"
            ]
        },
        "archreq": 0,
        "className": "QMinimalEglIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("minimalegl")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqoffscreen.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqoffscreen.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "archreq": 0,
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqvnc.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqvnc.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "vnc"
            ]
        },
        "archreq": 0,
        "className": "QVncIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("vnc")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/platforms" ...
    loaded library "/usr/lib/plugins/platforms/libqeglfs.so"
    QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/var/volatile/tmp/runtime-root'
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/egldeviceintegrations" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_emu"
            ]
        },
        "archreq": 0,
        "className": "QEglFSEmulatorIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_emu")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_kms_egldevice"
            ]
        },
        "archreq": 0,
        "className": "QEglFSKmsEglDeviceIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_kms_egldevice")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_kms"
            ]
        },
        "archreq": 0,
        "className": "QEglFSKmsGbmIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_kms")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/egldeviceintegrations" ...
    loaded library "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
    Setting framebuffer size is only available with DRM atomic API
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/imageformats" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqjpeg.so"
    Found metadata in lib /usr/lib/plugins/imageformats/libqjpeg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "jpg",
                "jpeg"
            ],
            "MimeTypes": [
                "image/jpeg",
                "image/jpeg"
            ]
        },
        "archreq": 0,
        "className": "QJpegPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("jpg", "jpeg")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqsvg.so"
    Found metadata in lib /usr/lib/plugins/imageformats/libqsvg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz"
            ],
            "MimeTypes": [
                "image/svg+xml",
                "image/svg+xml-compressed"
            ]
        },
        "archreq": 0,
        "className": "QSvgPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/imageformats" ...
    loaded library "/usr/lib/plugins/imageformats/libqjpeg.so"
    loaded library "/usr/lib/plugins/imageformats/libqsvg.so"
    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/iconengines" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/iconengines/libqsvgicon.so"
    Found metadata in lib /usr/lib/plugins/iconengines/libqsvgicon.so, metadata=
    {
        "IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz",
                "svg.gz"
            ]
        },
        "archreq": 0,
        "className": "QSvgIconPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz", "svg.gz")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/iconengines" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/simple/accessible" ...
    Cannot find EGLConfig, returning null config
    
    

    The quicknanobrowser has no warnings during starting:

    # quicknanobrowser -platform eglfs --no-sandbox
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqeglfs.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqeglfs.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "eglfs"
            ]
        },
        "archreq": 0,
        "className": "QEglFSIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqlinuxfb.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqlinuxfb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "linuxfb"
            ]
        },
        "archreq": 0,
        "className": "QLinuxFbIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("linuxfb")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimal.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqminimal.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "archreq": 0,
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimalegl.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqminimalegl.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimalegl"
            ]
        },
        "archreq": 0,
        "className": "QMinimalEglIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("minimalegl")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqoffscreen.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqoffscreen.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "archreq": 0,
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqvnc.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqvnc.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "vnc"
            ]
        },
        "archreq": 0,
        "className": "QVncIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("vnc")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/platforms" ...
    loaded library "/usr/lib/plugins/platforms/libqeglfs.so"
    QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/var/volatile/tmp/runtime-root'
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/egldeviceintegrations" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_emu"
            ]
        },
        "archreq": 0,
        "className": "QEglFSEmulatorIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_emu")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_kms_egldevice"
            ]
        },
        "archreq": 0,
        "className": "QEglFSKmsEglDeviceIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_kms_egldevice")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_kms"
            ]
        },
        "archreq": 0,
        "className": "QEglFSKmsGbmIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_kms")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/egldeviceintegrations" ...
    loaded library "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
    Setting framebuffer size is only available with DRM atomic API
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/imageformats" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqjpeg.so"
    Found metadata in lib /usr/lib/plugins/imageformats/libqjpeg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "jpg",
                "jpeg"
            ],
            "MimeTypes": [
                "image/jpeg",
                "image/jpeg"
            ]
        },
        "archreq": 0,
        "className": "QJpegPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("jpg", "jpeg")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqsvg.so"
    Found metadata in lib /usr/lib/plugins/imageformats/libqsvg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz"
            ],
            "MimeTypes": [
                "image/svg+xml",
                "image/svg+xml-compressed"
            ]
        },
        "archreq": 0,
        "className": "QSvgPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/imageformats" ...
    loaded library "/usr/lib/plugins/imageformats/libqjpeg.so"
    loaded library "/usr/lib/plugins/imageformats/libqsvg.so"
    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/styles" ...
    Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
    Found metadata in lib /usr/lib/qml/QtQuick.2/libqtquick2plugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuick2Plugin",
        "debug": false,
        "uri": [
            "QtQuick.2"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick.2/libqtquick2plugin.so"
    Found metadata in lib /usr/lib/qml/QtWebEngine/libqtwebengineplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtWebEnginePlugin",
        "debug": false,
        "uri": [
            "QtWebEngine"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtWebEngine/libqtwebengineplugin.so"
    Found metadata in lib /usr/lib/qml/Qt/labs/settings/libqmlsettingsplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QmlSettingsPlugin",
        "debug": false,
        "uri": [
            "Qt.labs.settings"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/Qt/labs/settings/libqmlsettingsplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Controls/libqtquickcontrolsplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuickControls1Plugin",
        "debug": false,
        "uri": [
            "QtQuick.Controls"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Controls/libqtquickcontrolsplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Dialogs/libdialogplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuick2DialogsPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Dialogs"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Dialogs/libdialogplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Layouts/libqquicklayoutsplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuickLayoutsPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Layouts"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Layouts/libqquicklayoutsplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Window.2/libwindowplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuick2WindowPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Window.2"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Window.2/libwindowplugin.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/iconengines" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/iconengines/libqsvgicon.so"
    Found metadata in lib /usr/lib/plugins/iconengines/libqsvgicon.so, metadata=
    {
        "IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz",
                "svg.gz"
            ]
        },
        "archreq": 0,
        "className": "QSvgIconPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz", "svg.gz")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/iconengines" ...
    Segmentation fault
    root@AS01:/home/qt/build# ./quicknanobrowser -platform eglfs --no-sandbox
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqeglfs.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqeglfs.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "eglfs"
            ]
        },
        "archreq": 0,
        "className": "QEglFSIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqlinuxfb.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqlinuxfb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "linuxfb"
            ]
        },
        "archreq": 0,
        "className": "QLinuxFbIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("linuxfb")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimal.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqminimal.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "archreq": 0,
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimalegl.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqminimalegl.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimalegl"
            ]
        },
        "archreq": 0,
        "className": "QMinimalEglIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("minimalegl")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqoffscreen.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqoffscreen.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "archreq": 0,
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqvnc.so"
    Found metadata in lib /usr/lib/plugins/platforms/libqvnc.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "vnc"
            ]
        },
        "archreq": 0,
        "className": "QVncIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("vnc")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/platforms" ...
    loaded library "/usr/lib/plugins/platforms/libqeglfs.so"
    QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/var/volatile/tmp/runtime-root'
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/egldeviceintegrations" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_emu"
            ]
        },
        "archreq": 0,
        "className": "QEglFSEmulatorIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_emu")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_kms_egldevice"
            ]
        },
        "archreq": 0,
        "className": "QEglFSKmsEglDeviceIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_kms_egldevice")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
    Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so, metadata=
    {
        "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
        "MetaData": {
            "Keys": [
                "eglfs_kms"
            ]
        },
        "archreq": 0,
        "className": "QEglFSKmsGbmIntegrationPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("eglfs_kms")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/egldeviceintegrations" ...
    loaded library "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
    Setting framebuffer size is only available with DRM atomic API
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/imageformats" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqjpeg.so"
    Found metadata in lib /usr/lib/plugins/imageformats/libqjpeg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "jpg",
                "jpeg"
            ],
            "MimeTypes": [
                "image/jpeg",
                "image/jpeg"
            ]
        },
        "archreq": 0,
        "className": "QJpegPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("jpg", "jpeg")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqsvg.so"
    Found metadata in lib /usr/lib/plugins/imageformats/libqsvg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz"
            ],
            "MimeTypes": [
                "image/svg+xml",
                "image/svg+xml-compressed"
            ]
        },
        "archreq": 0,
        "className": "QSvgPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/imageformats" ...
    loaded library "/usr/lib/plugins/imageformats/libqjpeg.so"
    loaded library "/usr/lib/plugins/imageformats/libqsvg.so"
    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/styles" ...
    Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
    Found metadata in lib /usr/lib/qml/QtQuick.2/libqtquick2plugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuick2Plugin",
        "debug": false,
        "uri": [
            "QtQuick.2"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick.2/libqtquick2plugin.so"
    Found metadata in lib /usr/lib/qml/QtWebEngine/libqtwebengineplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtWebEnginePlugin",
        "debug": false,
        "uri": [
            "QtWebEngine"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtWebEngine/libqtwebengineplugin.so"
    Found metadata in lib /usr/lib/qml/Qt/labs/settings/libqmlsettingsplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QmlSettingsPlugin",
        "debug": false,
        "uri": [
            "Qt.labs.settings"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/Qt/labs/settings/libqmlsettingsplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Controls/libqtquickcontrolsplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuickControls1Plugin",
        "debug": false,
        "uri": [
            "QtQuick.Controls"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Controls/libqtquickcontrolsplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Dialogs/libdialogplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuick2DialogsPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Dialogs"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Dialogs/libdialogplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Layouts/libqquicklayoutsplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuickLayoutsPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Layouts"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Layouts/libqquicklayoutsplugin.so"
    Found metadata in lib /usr/lib/qml/QtQuick/Window.2/libwindowplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "archreq": 0,
        "className": "QtQuick2WindowPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Window.2"
        ],
        "version": 330752
    }
    
    
    loaded library "/usr/lib/qml/QtQuick/Window.2/libwindowplugin.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/iconengines" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/iconengines/libqsvgicon.so"
    Found metadata in lib /usr/lib/plugins/iconengines/libqsvgicon.so, metadata=
    {
        "IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz",
                "svg.gz"
            ]
        },
        "archreq": 0,
        "className": "QSvgIconPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz", "svg.gz")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/qt/build/iconengines" ...
    
    

    After last line there is only a Segmentation...

    Regards,

    Andy

  • Hi Andy,

    I have replicated the issue on my side and I am working with our developers to find the root cause.

    Regards,
    Krunal

  • Hi Andy,

    I just wanted to clarify that on our setup, we see do not see the seg. fault and here is our test log:

    root@am57xx-evm:~# /usr/share/qt5/examples/webenginewidgets/simplebrowser/simplebrowser --no-sandbox www.ti.com -platform eglfs
    No modes available for output "HDMI1"
    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    Cannot find EGLConfig, returning null config

    I am wondering if you are using the default TI PSDK6.2 and if you have modified anything from the default SDK.

    Regards,
    Krunal

  • Hi Andy,

    Based on my discussion with our developer, “libGLESv2.so.2” is actually part of Mesa3D and it is open source. The binaries have debug symbols and in the build folder, there should be a package called "ti-sgx-ddk-um-dbg_*.ipk" and it has the symbols for libGLESv2.so.2. Could you please try running your application with the debug symbols?

    Regards,
    Krunal

  • Krunal Bhargav34 said:

    Hi Andy,

    I just wanted to clarify that on our setup, we see do not see the seg. fault and here is our test log:

    1
    2
    3
    4
    5
    root@am57xx-evm:~# /usr/share/qt5/examples/webenginewidgets/simplebrowser/simplebrowser --no-sandbox www.ti.com -platform eglfs
    No modes available for output "HDMI1"
    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    Cannot find EGLConfig, returning null config

    I am wondering if you are using the default TI PSDK6.2 and if you have modified anything from the default SDK.

    Regards,
    Krunal

    Hello Krunal,

    I didn't say, that I have a fully PSDK6.2 version installed on my machine. I am just using PSDK changes on my revision. But generally speaking, I have PSDK running.

    I can try to prepare for you a webpage, where you can test it on your side.

    Regarding to "ti-sgx-ddk-um-dbg_1.17.4948957-r34.ipk" thank you for pointing this out. I can try to use libraries from this package a give a feedback.

    Thank you,

    Andy

  • Hello Krunal,

    I have tested a browser application with debug package, what have you mentioned.

    Reading /lib/libpthread.so.0 from remote target...
    Reading /usr/lib/libQt5Core.so.5 from remote target...
    Reading /usr/lib/libQt5Gui.so.5 from remote target...
    Reading /usr/lib/libQt5Network.so.5 from remote target...
    Reading /usr/lib/libQt5Widgets.so.5 from remote target...
    Reading /usr/lib/libQt5WebEngine.so.5 from remote target...
    Reading /usr/lib/libQt5WebEngineCore.so.5 from remote target...
    Reading /usr/lib/libQt5WebEngineWidgets.so.5 from remote target...
    Reading /usr/lib/libstdc++.so.6 from remote target...
    Reading /lib/libm.so.6 from remote target...
    Reading /lib/libgcc_s.so.1 from remote target...
    Reading /lib/libc.so.6 from remote target...
    Reading /lib/libz.so.1 from remote target...
    Reading /lib/libdl.so.2 from remote target...
    Reading /usr/lib/libGLESv2.so.2 from remote target...
    Reading /usr/lib/libpng16.so.16 from remote target...
    Reading /usr/lib/libQt5Quick.so.5 from remote target...
    Reading /usr/lib/libQt5WebChannel.so.5 from remote target...
    Reading /usr/lib/libQt5Qml.so.5 from remote target...
    Reading /usr/lib/libQt5Positioning.so.5 from remote target...
    Reading /usr/lib/libQt5Test.so.5 from remote target...
    Reading /lib/librt.so.1 from remote target...
    Reading /usr/lib/libsmime3.so from remote target...
    Reading /usr/lib/libnss3.so from remote target...
    Reading /usr/lib/libsoftokn3.so from remote target...
    Reading /usr/lib/libnssutil3.so from remote target...
    Reading /usr/lib/libplds4.so from remote target...
    Reading /usr/lib/libplc4.so from remote target...
    Reading /usr/lib/libnspr4.so from remote target...
    Reading /usr/lib/libevent-2.1.so.6 from remote target...
    Reading /lib/libresolv.so.2 from remote target...
    Reading /usr/lib/libwebpmux.so.3 from remote target...
    Reading /usr/lib/libwebpdemux.so.2 from remote target...
    Reading /usr/lib/libwebp.so.7 from remote target...
    Reading /usr/lib/libfreetype.so.6 from remote target...
    Reading /usr/lib/libjpeg.so.62 from remote target...
    Reading /usr/lib/libexpat.so.1 from remote target...
    Reading /usr/lib/libfontconfig.so.1 from remote target...
    Reading /usr/lib/libpci.so.3 from remote target...
    Reading /usr/lib/libdbus-1.so.3 from remote target...
    Reading /usr/lib/libQt5QuickWidgets.so.5 from remote target...
    Reading /usr/lib/libglapi.so.0 from remote target...
    Reading /usr/lib/libsqlite3.so.0 from remote target...
    Reading /usr/lib/libQt5Core.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Core.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5Gui.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Gui.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5Network.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Network.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5WebEngine.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5WebEngine.so.5.12.5.debug from remote target...
    Reading /usr/lib/libstdc++.so.6.0.25.debug from remote target...
    Reading /usr/lib/.debug/libstdc++.so.6.0.25.debug from remote target...
    Reading /lib/libm-2.28.so.debug from remote target...
    Reading /lib/.debug/libm-2.28.so.debug from remote target...
    Reading /lib/libgcc_s.so.1.debug from remote target...
    Reading /lib/.debug/libgcc_s.so.1.debug from remote target...
    Reading /lib/libz.so.1.2.11.debug from remote target...
    Reading /lib/.debug/libz.so.1.2.11.debug from remote target...
    Reading /lib/libdl-2.28.so.debug from remote target...
    Reading /lib/.debug/libdl-2.28.so.debug from remote target...
    Reading /usr/lib/libGLESv2.so.2.0.0.debug from remote target...
    Reading /usr/lib/.debug/libGLESv2.so.2.0.0.debug from remote target...
    Reading /usr/lib/libpng16.so.16.37.0.debug from remote target...
    Reading /usr/lib/.debug/libpng16.so.16.37.0.debug from remote target...
    Reading /usr/lib/libQt5Quick.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Quick.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5WebChannel.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5WebChannel.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5Qml.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Qml.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5Positioning.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Positioning.so.5.12.5.debug from remote target...
    Reading /usr/lib/libQt5Test.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Test.so.5.12.5.debug from remote target...
    Reading /lib/librt-2.28.so.debug from remote target...
    Reading /lib/.debug/librt-2.28.so.debug from remote target...
    Reading /usr/lib/libsmime3.so.debug from remote target...
    Reading /usr/lib/.debug/libsmime3.so.debug from remote target...
    Reading /usr/lib/libnss3.so.debug from remote target...
    Reading /usr/lib/.debug/libnss3.so.debug from remote target...
    Reading /usr/lib/libsoftokn3.so.debug from remote target...
    Reading /usr/lib/.debug/libsoftokn3.so.debug from remote target...
    Reading /usr/lib/libnssutil3.so.debug from remote target...
    Reading /usr/lib/.debug/libnssutil3.so.debug from remote target...
    Reading /usr/lib/libplds4.so.debug from remote target...
    Reading /usr/lib/.debug/libplds4.so.debug from remote target...
    Reading /usr/lib/libplc4.so.debug from remote target...
    Reading /usr/lib/.debug/libplc4.so.debug from remote target...
    Reading /usr/lib/libnspr4.so.debug from remote target...
    Reading /usr/lib/.debug/libnspr4.so.debug from remote target...
    Reading /usr/lib/libevent-2.1.so.6.0.2.debug from remote target...
    Reading /usr/lib/.debug/libevent-2.1.so.6.0.2.debug from remote target...
    Reading /lib/libresolv-2.28.so.debug from remote target...
    Reading /lib/.debug/libresolv-2.28.so.debug from remote target...
    Reading /usr/lib/libwebpmux.so.3.0.2.debug from remote target...
    Reading /usr/lib/.debug/libwebpmux.so.3.0.2.debug from remote target...
    Reading /usr/lib/libwebpdemux.so.2.0.4.debug from remote target...
    Reading /usr/lib/.debug/libwebpdemux.so.2.0.4.debug from remote target...
    Reading /usr/lib/libwebp.so.7.0.2.debug from remote target...
    Reading /usr/lib/.debug/libwebp.so.7.0.2.debug from remote target...
    Reading /usr/lib/libfreetype.so.6.16.1.debug from remote target...
    Reading /usr/lib/.debug/libfreetype.so.6.16.1.debug from remote target...
    Reading /usr/lib/libjpeg.so.62.3.0.debug from remote target...
    Reading /usr/lib/.debug/libjpeg.so.62.3.0.debug from remote target...
    Reading /usr/lib/libexpat.so.1.6.10.debug from remote target...
    Reading /usr/lib/.debug/libexpat.so.1.6.10.debug from remote target...
    Reading /usr/lib/libfontconfig.so.1.10.1.debug from remote target...
    Reading /usr/lib/.debug/libfontconfig.so.1.10.1.debug from remote target...
    Reading /usr/lib/libpci.so.3.6.2.debug from remote target...
    Reading /usr/lib/.debug/libpci.so.3.6.2.debug from remote target...
    Reading /usr/lib/libdbus-1.so.3.19.8.debug from remote target...
    Reading /usr/lib/.debug/libdbus-1.so.3.19.8.debug from remote target...
    Reading /usr/lib/libQt5QuickWidgets.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5QuickWidgets.so.5.12.5.debug from remote target...
    Reading /usr/lib/libglapi.so.0.0.0.debug from remote target...
    Reading /usr/lib/.debug/libglapi.so.0.0.0.debug from remote target...
    Reading /usr/lib/libsqlite3.so.0.8.6.debug from remote target...
    Reading /usr/lib/.debug/libsqlite3.so.0.8.6.debug from remote target...

    It loaded all required libraries as well.

    Temporary breakpoint 1, main (argc=4, argv=0xbefffcf4) at main.cpp:69
    69          QCoreApplication::setOrganizationName("QtExamples");
    Reading /usr/lib/plugins/platforms/libqeglfs.so from remote target...
    Reading /usr/lib/libQt5EglFSDeviceIntegration.so.5 from remote target...
    Reading /usr/lib/libEGL.so.1 from remote target...
    Reading /lib/libudev.so.1 from remote target...
    Reading /usr/lib/libQt5DBus.so.5 from remote target...
    Reading /usr/lib/libgbm.so.1 from remote target...
    Reading /usr/lib/libdrm.so.2 from remote target...
    Reading /usr/lib/libwayland-client.so.0 from remote target...
    Reading /usr/lib/libwayland-server.so.0 from remote target...
    Reading /usr/lib/libffi.so.6 from remote target...
    Reading /usr/lib/plugins/platforms/libqeglfs.so.debug from remote target...
    Reading /usr/lib/plugins/platforms/.debug/libqeglfs.so.debug from remote target...
    Reading /usr/lib/libQt5EglFSDeviceIntegration.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5EglFSDeviceIntegration.so.5.12.5.debug from remote target...
    Reading /usr/lib/libEGL.so.1.0.0.debug from remote target...
    Reading /usr/lib/.debug/libEGL.so.1.0.0.debug from remote target...
    Reading /lib/libudev.so.1.6.3.debug from remote target...
    Reading /lib/.debug/libudev.so.1.6.3.debug from remote target...
    Reading /usr/lib/libQt5DBus.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5DBus.so.5.12.5.debug from remote target...
    Reading /usr/lib/libgbm.so.1.0.0.debug from remote target...
    Reading /usr/lib/.debug/libgbm.so.1.0.0.debug from remote target...
    Reading /usr/lib/libdrm.so.2.4.0.debug from remote target...
    Reading /usr/lib/.debug/libdrm.so.2.4.0.debug from remote target...
    Reading /usr/lib/libwayland-client.so.0.3.0.debug from remote target...
    Reading /usr/lib/.debug/libwayland-client.so.0.3.0.debug from remote target...
    Reading /usr/lib/libwayland-server.so.0.1.0.debug from remote target...
    Reading /usr/lib/.debug/libwayland-server.so.0.1.0.debug from remote target...
    Reading /usr/lib/libffi.so.6.0.4.debug from remote target...
    Reading /usr/lib/.debug/libffi.so.6.0.4.debug from remote target...
    Reading /lib/libnss_compat.so.2 from remote target...
    Reading /lib/libnss_compat-2.28.so.debug from remote target...
    Reading /lib/.debug/libnss_compat-2.28.so.debug from remote target...
    Reading /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so from remote target...
    Reading /usr/lib/libQt5EglFsKmsSupport.so.5 from remote target...
    Reading /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so.debug from remote target...
    Reading /usr/lib/plugins/egldeviceintegrations/.debug/libqeglfs-kms-integration.so.debug from remote target...
    Reading /usr/lib/libQt5EglFsKmsSupport.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5EglFsKmsSupport.so.5.12.5.debug from remote target...
    Reading /usr/lib/dri/pvr_dri.so from remote target...
    Reading /usr/lib/libpvr_dri_support.so.1 from remote target...
    Reading /usr/lib/libsrv_um.so.1 from remote target...
    Reading /usr/lib/libdbm.so.1 from remote target...
    Reading /usr/lib/dri/pvr_dri.so.debug from remote target...
    Reading /usr/lib/dri/.debug/pvr_dri.so.debug from remote target...
    Reading /usr/lib/libpvr_dri_support.dbg from remote target...
    Reading /usr/lib/.debug/libpvr_dri_support.dbg from remote target...
    Reading /usr/lib/libsrv_um.dbg from remote target...
    Reading /usr/lib/.debug/libsrv_um.dbg from remote target...
    Reading /usr/lib/libdbm.dbg from remote target...
    Reading /usr/lib/.debug/libdbm.dbg from remote target...
    Reading /usr/lib/libGLESv1_PVR_MESA.so from remote target...
    Reading /usr/lib/libusc.so.1 from remote target...
    Reading /usr/lib/libGLESv1_PVR_MESA.dbg from remote target...
    Reading /usr/lib/.debug/libGLESv1_PVR_MESA.dbg from remote target...
    Reading /usr/lib/libusc.dbg from remote target...
    Reading /usr/lib/.debug/libusc.dbg from remote target...
    Reading /usr/lib/libGLESv2_PVR_MESA.so from remote target...
    Reading /usr/lib/libGLESv2_PVR_MESA.dbg from remote target...
    Reading /usr/lib/.debug/libGLESv2_PVR_MESA.dbg from remote target...
    Reading /usr/lib/plugins/imageformats/libqjpeg.so from remote target...
    Reading /usr/lib/plugins/imageformats/libqjpeg.so.debug from remote target...
    Reading /usr/lib/plugins/imageformats/.debug/libqjpeg.so.debug from remote target...
    Reading /usr/lib/plugins/imageformats/libqsvg.so from remote target...
    Reading /usr/lib/libQt5Svg.so.5 from remote target...
    Reading /usr/lib/plugins/imageformats/libqsvg.so.debug from remote target...
    Reading /usr/lib/plugins/imageformats/.debug/libqsvg.so.debug from remote target...
    Reading /usr/lib/libQt5Svg.so.5.12.5.debug from remote target...
    Reading /usr/lib/.debug/libQt5Svg.so.5.12.5.debug from remote target...
    Reading /usr/lib/libGLESv2_PVR_MESA.so from remote target...
    Reading /usr/lib/libGLESv2_PVR_MESA.dbg from remote target...
    Reading /usr/lib/.debug/libGLESv2_PVR_MESA.dbg from remote target...
    [Detaching after fork from child process 3141]
    [New Thread 3072.3149]
    [New Thread 3072.3153]
    [New Thread 3072.3139]
    [New Thread 3072.3140]
    [New Thread 3072.3142]
    [New Thread 3072.3143]
    [New Thread 3072.3144]
    [New Thread 3072.3145]
    [New Thread 3072.3146]
    [New Thread 3072.3147]
    [New Thread 3072.3148]
    [New Thread 3072.3150]
    [New Thread 3072.3151]
    [New Thread 3072.3152]
    [New Thread 3072.3154]
    [New Thread 3072.3155]
    [New Thread 3072.3156]
    [New Thread 3072.3169]
    [New Thread 3072.3171]
    
    Thread 3 "Chrome_InProcGp" received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 3072.3153]
    _int_malloc (av=av@entry=0xafc00010, bytes=bytes@entry=262144) at malloc.c:4086
    warning: Source file is more recent than executable.
    4086              set_head (remainder, remainder_size | PREV_INUSE);
    bt full
    #0  _int_malloc (av=av@entry=0xafc00010, bytes=bytes@entry=262144) at malloc.c:4086
            p = <optimized out>
            iters = <optimized out>
            nb = 262152
            idx = 126
            bin = <optimized out>
            victim = 0xafc76c68
            size = <optimized out>
            victim_index = <optimized out>
            remainder = 0xafcb6c70
            remainder_size = <optimized out>
            block = <optimized out>
            bit = <optimized out>
            map = <optimized out>
            fwd = <optimized out>
            bck = <optimized out>
            tcache_unsorted_count = 0
            tcache_nb = 0
            tc_idx = 32767
            return_cached = <optimized out>
            __PRETTY_FUNCTION__ = "_int_malloc"
    #1  0xb1d3b1a8 in __GI___libc_malloc (bytes=262144) at malloc.c:3049
            ar_ptr = 0xafc00010
            victim = <optimized out>
            hook = <optimized out>
            tbytes = <optimized out>
            tc_idx = 32767
            __PRETTY_FUNCTION__ = "__libc_malloc"
    #2  0xafb90430 in glTexSubImage2D () from target:/usr/lib/libGLESv2_PVR_MESA.so
    No symbol table info available.
    #3  0xb50dd1be in gl::GLImageMemory::CopyTexSubImage () at ../../../../git/src/3rdparty/chromium/ui/gl/gl_image_memory.cc:491
    No locals.
    #4  0xb3dc4ec0 in gpu::gles2::GLES2DecoderImpl::CopySubTextureHelper () at ../../../../git/src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc:17449
    No locals.
    #5  0xb3dc508c in gpu::gles2::GLES2DecoderImpl::DoCopySubTextureCHROMIUM () at ../../../../git/src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc:17522
    No locals.
    #6  0xb3ddc860 in gpu::gles2::GLES2DecoderImpl::HandleCopySubTextureCHROMIUM () at ../../../../git/src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h:4653
    No locals.
    #7  0xb3dd0364 in gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<false> () at ../../../../git/src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc:5639
    No locals.
    #8  0xb50e2208 in gpu::CommandBufferService::Flush () at ../../../../git/src/3rdparty/chromium/gpu/command_buffer/service/command_buffer_service.cc:87
    No locals.
    #9  0xb50e855e in gpu::CommandBufferStub::OnAsyncFlush () at ../../../../git/src/3rdparty/chromium/gpu/ipc/service/command_buffer_stub.cc:613
    No locals.
    #10 0xb50eae5e in base::DispatchToMethodImpl<gpu::CommandBufferStub*, void (gpu::CommandBufferStub::*)(int, unsigned int), std::tuple<int, unsigned int>, 0u, 1u> () at ../../../../git/src/3rdparty/chromium/base/tuple.h:52
    No locals.
    #11 base::DispatchToMethod<gpu::CommandBufferStub*, void (gpu::CommandBufferStub::*)(int, unsigned int), std::tuple<int, unsigned int> > () at ../../../../git/src/3rdparty/chromium/base/tuple.h:60
    No locals.
    #12 IPC::DispatchToMethod<gpu::CommandBufferStub, void (gpu::CommandBufferStub::*)(int, unsigned int), void, std::tuple<int, unsigned int> > () at ../../../../git/src/3rdparty/chromium/ipc/ipc_message_templates.h:51
    No locals.
    #13 IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta, std::tuple<int, unsigned int>, void>::Dispatch<gpu::CommandBufferStub, gpu::CommandBufferStub, void, void (gpu::CommandBufferStub::*)(int, unsigned int)> () at ../../../../git/src/3rdparty/chromium/ipc/ipc_message_templates.h:146
    No locals.
    #14 gpu::CommandBufferStub::OnMessageReceived () at ../../../../git/src/3rdparty/chromium/gpu/ipc/service/command_buffer_stub.cc:280
    No locals.
    #15 0xb50cf52c in IPC::MessageRouter::RouteMessage () at ../../../../git/src/3rdparty/chromium/ipc/message_router.cc:56
    No locals.
    #16 0xb50eeeee in gpu::GpuChannel::HandleMessageHelper () at ../../../../git/src/3rdparty/chromium/gpu/ipc/service/gpu_channel.cc:538
    No locals.
    #17 0xb50eef84 in gpu::GpuChannel::HandleMessage () at ../../../../git/src/3rdparty/chromium/gpu/ipc/service/gpu_channel.cc:514
    No locals.
    #18 0xb50e59c0 in base::OnceCallback<void ()>::Run() && () at ../../../../git/src/3rdparty/chromium/base/callback.h:99
    No locals.
    #19 gpu::Scheduler::RunNextTask () at ../../../../git/src/3rdparty/chromium/gpu/command_buffer/service/scheduler.cc:528
    No locals.
    #20 0xb352ffe8 in base::OnceCallback<void ()>::Run() && () at ../../../../git/src/3rdparty/chromium/base/callback.h:99
    No locals.
    #21 base::debug::TaskAnnotator::RunTask () at ./../../../../git/src/3rdparty/chromium/base/debug/task_annotator.cc:101
    No locals.
    #22 0xb35495e8 in base::MessageLoop::RunTask () at ./../../../../git/src/3rdparty/chromium/base/message_loop/message_loop.cc:421
    No locals.
    #23 0xb3549a7c in base::MessageLoop::DeferOrRunPendingTask () at ./../../../../git/src/3rdparty/chromium/base/message_loop/message_loop.cc:432
    No locals.
    #24 0xb3549b7a in base::MessageLoop::DoWork () at ./../../../../git/src/3rdparty/chromium/base/message_loop/message_loop.cc:480
    No locals.
    #25 0xb354580a in base::MessagePumpDefault::Run () at ./../../../../git/src/3rdparty/chromium/base/message_loop/message_pump_default.cc:37
    No locals.
    #26 0xb355f378 in base::RunLoop::Run () at ./../../../../git/src/3rdparty/chromium/base/run_loop.cc:102
    No locals.
    #27 0xb3587b82 in base::Thread::Run () at ./../../../../git/src/3rdparty/chromium/base/threading/thread.cc:255
    No locals.
    #28 base::Thread::ThreadMain () at ./../../../../git/src/3rdparty/chromium/base/threading/thread.cc:337
    No locals.
    #29 0xb35ad816 in ThreadFunc () at ./../../../../git/src/3rdparty/chromium/base/threading/platform_thread_posix.cc:76
    No locals.
    #30 0xb6fb4d4c in start_thread (arg=0xa5952f97) at pthread_create.c:486
            ret = <optimized out>
            start = <optimized out>
            pd = 0xa5952f97
            unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1150210934, -1516949609, -1474341856, -1440774508, -1474341752, -1474343368, -1474341856, -1224924768, 0 <repeats 56 times>}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
            not_first_call = <optimized out>
            robust = <optimized out>
    #31 0xb1d83a5c in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from target:/lib/libc.so.6
    No locals.
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)

    Anyway there are missing debug symbols for "libGLESv2_PVR_MESA.so".

    Regarding to testing webpage, I will send this "local webpage" over private mail from other collage.

    Regards,
    Andy

  • Hi Andy,

    The SEGV in malloc is usually an indication of heap corruption issue. I am wondering if you could please use valgrind, AddressSanitizer, or efence to track down who is causing the initial corruption.

    Regards,
    Krunal

  • Hello Krunal,

    Valgrind using is not possible, due to not enough memory on the embedded target. Regarding to "AddressSanitizer", looks like, that I need to re-compile the whole QT with "-address-sanitizer". I am not really sure, what will happen, if whole QT will has this option enabled.

    //EDIT:
    I have used valgrind on simplebrowser and quicknanobrowser. Both of them failed on libfontconfig library. It doesn't matter which page I am trying to access, including a good one. So there should be something different.

    ==5144== Warning: bad signal number 65 in sigaction()
    ==5144== Warning: invalid file descriptor 1024 in syscall close()
    ==5144== Warning: invalid file descriptor 1025 in syscall close()
    ==5144== Warning: invalid file descriptor 1026 in syscall close()
    ==5144== Warning: invalid file descriptor 1027 in syscall close()
    ==5144==    Use --log-fd=<number> to select an alternative log fd.
    ==5144== Warning: invalid file descriptor 1028 in syscall close()
    ==5144== Warning: invalid file descriptor 1029 in syscall close()
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE0D
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE1D
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    ==5116==
    ==5116== Process terminating with default action of signal 11 (SIGSEGV)
    ==5116==  Access not within mapped region at address 0xBDDA2188
    ==5116==    at 0xA6A61E0: FcConfigEnableHome (fccfg.c:2138)
    ==5116==    by 0xA6B6F0B: FcConfigParseAndLoad (fcxml.c:3369)
    ==5116==    by 0xA6B72F3: FcParseInclude (fcxml.c:2397)
    ==5116==    by 0xA6B72F3: FcEndElement (fcxml.c:2928)
    ==5116==    by 0xA66CB23: doContent (xmlparse.c:2843)
    ==5116==    by 0xA66D163: contentProcessor (xmlparse.c:2443)
    ==5116==    by 0xA66B6CF: doProlog (xmlparse.c:4369)
    ==5116==    by 0xA66D403: prologProcessor (xmlparse.c:4092)
    ==5116==    by 0xA66E8B9: XML_ParseBuffer (xmlparse.c:1891)
    ==5116==    by 0xA6B6DD7: FcConfigParseAndLoadFromMemoryInternal (fcxml.c:3308)
    ==5116==    by 0xA6B712F: FcConfigParseAndLoad (fcxml.c:3416)
    ==5116==    by 0xA6B716F: FcConfigParseAndLoadDir (fcxml.c:3209)
    ==5116==    by 0xA6B716F: FcConfigParseAndLoad (fcxml.c:3392)
    ==5116==    by 0xA6B72F3: FcParseInclude (fcxml.c:2397)
    ==5116==    by 0xA6B72F3: FcEndElement (fcxml.c:2928)
    ==5116==  If you believe this happened as a result of a stack
    ==5116==  overflow in your program's main thread (unlikely but
    ==5116==  possible), you can try to increase the size of the
    ==5116==  main thread stack using the --main-stacksize= flag.
    ==5116==  The main thread stack size used in this run was 8388608.
    ==5116==
    ==5116== Process terminating with default action of signal 11 (SIGSEGV)
    ==5116==  Access not within mapped region at address 0xBDDA1FF8
    ==5116==    at 0x4007154: _dl_rtld_di_serinfo (dl-lookup.c:75)
    ==5116==    by 0x4007421: do_lookup_x (dl-lookup.c:432)
    ==5116==    by 0x4007B97: _dl_lookup_symbol_x (dl-lookup.c:814)
    ==5116==    by 0x400B689: _dl_fixup (dl-runtime.c:112)
    ==5116==    by 0x400FDD7: _dl_runtime_resolve (dl-trampoline.S:59)
    ==5116==    by 0x482B4AB: _vgnU_freeres (vg_preloaded.c:70)
    ==5116==    by 0xA6B6F0B: FcConfigParseAndLoad (fcxml.c:3369)
    ==5116==    by 0xA6B72F3: FcParseInclude (fcxml.c:2397)
    ==5116==    by 0xA6B72F3: FcEndElement (fcxml.c:2928)
    ==5116==    by 0xA66CB23: doContent (xmlparse.c:2843)
    ==5116==    by 0xA66D163: contentProcessor (xmlparse.c:2443)
    ==5116==    by 0xA66B6CF: doProlog (xmlparse.c:4369)
    ==5116==    by 0xA66D403: prologProcessor (xmlparse.c:4092)
    ==5116==  If you believe this happened as a result of a stack
    ==5116==  overflow in your program's main thread (unlikely but
    ==5116==  possible), you can try to increase the size of the
    ==5116==  main thread stack using the --main-stacksize= flag.
    ==5116==  The main thread stack size used in this run was 8388608.
    ==5116==
    ==5116== HEAP SUMMARY:
    ==5116==     in use at exit: 2,158,875 bytes in 27,010 blocks
    ==5116==   total heap usage: 67,578 allocs, 40,568 frees, 9,447,469 bytes allocated
    ==5116==
    ==5116== LEAK SUMMARY:
    ==5116==    definitely lost: 46,724 bytes in 802 blocks
    ==5116==    indirectly lost: 405,077 bytes in 3,461 blocks
    ==5116==      possibly lost: 236,290 bytes in 2,225 blocks
    ==5116==    still reachable: 1,470,784 bytes in 20,522 blocks
    ==5116==                       of which reachable via heuristic:
    ==5116==                         multipleinheritance: 5,232 bytes in 12 blocks
    ==5116==         suppressed: 0 bytes in 0 blocks
    ==5116== Rerun with --leak-check=full to see details of leaked memory
    ==5116==
    ==5116== For counts of detected and suppressed errors, rerun with: -v
    ==5116== Use --track-origins=yes to see where uninitialised values come from
    ==5116== ERROR SUMMARY: 470957 errors from 1000 contexts (suppressed: 179363 from 54)
    Segmentation fault

    I have also tried to use valgrind on my application. I have seen, that driver was trying to draw a webpage and then it crashed. But I think, a log is unusable...

    ==4558== Warning: bad signal number 65 in sigaction()
    ==4558== Warning: invalid file descriptor 1024 in syscall close()
    ==4558== Warning: invalid file descriptor 1025 in syscall close()
    ==4558== Warning: invalid file descriptor 1026 in syscall close()
    ==4558== Warning: invalid file descriptor 1027 in syscall close()
    ==4558==    Use --log-fd=<number> to select an alternative log fd.
    ==4558== Warning: invalid file descriptor 1028 in syscall close()
    ==4558== Warning: invalid file descriptor 1029 in syscall close()
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE0D
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE1D
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE18
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE0C
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE0D
    disInstr(thumb): unhandled instruction: 0xBE00 0xDE19
    
    valgrind: ../../valgrind-3.14.0/coregrind/m_mallocfree.c:307 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
    valgrind: Heap block lo/hi size mismatch: lo = 1280068684, hi = 1516175466.
    This is probably caused by your program erroneously writing past the
    end of a heap block and corrupting heap metadata.  If you fix any
    invalid writes reported by Memcheck, this assertion failure will
    probably go away.  Please try that before reporting this as a bug.
    
    
    host stacktrace:
    ==4522==    at 0x5804299C: show_sched_status_wrk (m_libcassert.c:369)
    ==4522==    by 0x58042AF7: report_and_quit (m_libcassert.c:440)
    ==4522==    by 0x58042C0F: vgPlain_assert_fail (m_libcassert.c:506)
    ==4522==    by 0x5804DFBF: get_bszB_as_is (m_mallocfree.c:305)
    ==4522==    by 0x5804DFBF: get_bszB (m_mallocfree.c:315)
    ==4522==    by 0x5804DFBF: vgPlain_arena_free (m_mallocfree.c:2109)
    ==4522==    by 0x58003D23: release_oldest_block (mc_malloc_wrappers.c:169)
    ==4522==    by 0x58003D23: create_MC_Chunk (mc_malloc_wrappers.c:212)
    ==4522==    by 0x58004B87: vgMemCheck_new_block (mc_malloc_wrappers.c:388)
    ==4522==    by 0x58004B87: vgMemCheck___builtin_new (mc_malloc_wrappers.c:417)
    ==4522==    by 0x580A6A1F: do_client_request (scheduler.c:1925)
    ==4522==    by 0x580A6A1F: vgPlain_scheduler (scheduler.c:1488)
    ==4522==    by 0x580F586F: thread_wrapper (syswrap-linux.c:103)
    ==4522==    by 0x580F586F: run_a_thread_NORETURN (syswrap-linux.c:156)
    ==4522==    by 0x580F5B7B: vgModuleLocal_start_thread_NORETURN (syswrap-linux.c:320)
    ==4522==    by 0x580B9117: ??? (in /usr/lib/valgrind/memcheck-arm-linux)
    
    sched status:
      running_tid=17
    
    Thread 1: status = VgTs_WaitSys syscall 3 (lwpid 4522)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5DF5E4F: read (read.c:26)
    ==4522==    by 0x58D7BB5: ??? (in /usr/lib/libQt5Core.so.5.12.5)
    client stack range: [0xBD7FE000 0xBD80BFFF] client SP: 0xBD80A080
    valgrind stack range: [0x62589000 0x62688FFF] top usage: 25608 of 1048576
    
    Thread 2: status = VgTs_WaitSys syscall 336 (lwpid 4550)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5DFB1C9: ppoll (ppoll.c:39)
    ==4522==    by 0x598285B: qt_safe_poll(pollfd*, unsigned long, timespec const*) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x59839FB: QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x59411F5: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQt5Core.so.5.12.5)
    client stack range: [0xBBCD000 0xC3CBFFF] client SP: 0xC3CBC00
    valgrind stack range: [0x697FD000 0x698FCFFF] top usage: 4060 of 1048576
    
    Thread 3: status = VgTs_WaitSys syscall 336 (lwpid 4551)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5DFB1C9: ppoll (ppoll.c:39)
    ==4522==    by 0x598285B: qt_safe_poll(pollfd*, unsigned long, timespec const*) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x59839FB: QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x59411F5: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQt5Core.so.5.12.5)
    client stack range: [0xC545000 0xCD43FFF] client SP: 0xCD43CC8
    valgrind stack range: [0x6B55C000 0x6B65BFFF] top usage: 25068 of 1048576
    
    Thread 4: status = VgTs_WaitSys syscall 168 (lwpid 4557)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5DFB10F: poll (poll.c:29)
    ==4522==    by 0x72BB3A7: poll (poll2.h:46)
    ==4522==    by 0x72BB3A7: content::SandboxIPCHandler::Run() (sandbox_ipc_linux.cc:46)
    ==4522==    by 0x74ABD6F: base::SimpleThread::ThreadMain() (simple_thread.cc:81)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0xFA1F000 0x1021DFFF] client SP: 0x1021DC78
    valgrind stack range: [0x6FB6C000 0x6FC6BFFF] top usage: 5404 of 1048576
    
    Thread 5: status = VgTs_WaitSys syscall 252 (lwpid 4559)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E02DA1: epoll_wait (epoll_wait.c:30)
    ==4522==    by 0xA4B992F: ??? (in /usr/lib/libevent-2.1.so.6.0.2)
    client stack range: [0x10220000 0x10A1EFFF] client SP: 0x10A1ECA0
    valgrind stack range: [0x6FE88000 0x6FF87FFF] top usage: 5404 of 1048576
    
    Thread 6: status = VgTs_WaitSys syscall 252 (lwpid 4560)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E02DA1: epoll_wait (epoll_wait.c:30)
    ==4522==    by 0xA4B992F: ??? (in /usr/lib/libevent-2.1.so.6.0.2)
    client stack range: [0x10A21000 0x1121FFFF] client SP: 0x1121FC90
    valgrind stack range: [0x70BB1000 0x70CB0FFF] top usage: 5404 of 1048576
    
    Thread 7: status = VgTs_WaitSys syscall 240 (lwpid 4561)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x74CF0E7: base::WaitableEvent::TimedWait(base::TimeDelta const&) (waitable_event_posix.cc:161)
    ==4522==    by 0x749C173: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:37)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DA45: base::internal::SchedulerWorker::RunPooledWorker() (scheduler_worker.cc:224)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x11222000 0x11A20FFF] client SP: 0x11A20BA8
    valgrind stack range: [0x70EB5000 0x70FB4FFF] top usage: 5404 of 1048576
    
    Thread 8: status = VgTs_WaitSys syscall 240 (lwpid 4562)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x74CF0E7: base::WaitableEvent::TimedWait(base::TimeDelta const&) (waitable_event_posix.cc:161)
    ==4522==    by 0x749C173: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:37)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DA45: base::internal::SchedulerWorker::RunPooledWorker() (scheduler_worker.cc:224)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x11A23000 0x12221FFF] client SP: 0x12221BA8
    valgrind stack range: [0x711B9000 0x712B8FFF] top usage: 7084 of 1048576
    
    Thread 9: status = VgTs_WaitSys syscall 252 (lwpid 4563)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E02DA1: epoll_wait (epoll_wait.c:30)
    ==4522==    by 0xA4B992F: ??? (in /usr/lib/libevent-2.1.so.6.0.2)
    client stack range: [0x12224000 0x12A22FFF] client SP: 0x12A22C90
    valgrind stack range: [0x714CD000 0x715CCFFF] top usage: 7084 of 1048576
    
    Thread 10: status = VgTs_WaitSys syscall 240 (lwpid 4565)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E6FE91: futex_wait_cancelable (futex-internal.h:88)
    ==4522==    by 0x5E6FE91: __pthread_cond_wait_common (pthread_cond_wait.c:502)
    ==4522==    by 0x5E6FE91: pthread_cond_wait@@GLIBC_2.4 (pthread_cond_wait.c:655)
    ==4522==    by 0x74CE763: base::ConditionVariable::Wait() (condition_variable_posix.cc:71)
    ==4522==    by 0x74CF07F: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:223)
    ==4522==    by 0x74CF0AD: base::WaitableEvent::Wait() (waitable_event_posix.cc:154)
    ==4522==    by 0x749C143: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:35)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DA8D: base::internal::SchedulerWorker::RunSharedWorker() (scheduler_worker.cc:236)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x12A25000 0x13223FFF] client SP: 0x13223BF0
    valgrind stack range: [0x717F1000 0x718F0FFF] top usage: 5068 of 1048576
    
    Thread 11: status = VgTs_WaitSys syscall 142 (lwpid 4566)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5DFD9E1: select (select.c:41)
    ==4522==    by 0x7459059: base::(anonymous namespace)::InotifyReaderThreadDelegate::ThreadMain() (file_path_watcher_linux.cc:235)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x13226000 0x13A24FFF] client SP: 0x13A24CC8
    valgrind stack range: [0x71AF5000 0x71BF4FFF] top usage: 5404 of 1048576
    
    Thread 12: status = VgTs_WaitSys syscall 240 (lwpid 4567)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x74CF0E7: base::WaitableEvent::TimedWait(base::TimeDelta const&) (waitable_event_posix.cc:161)
    ==4522==    by 0x749C173: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:37)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DA45: base::internal::SchedulerWorker::RunPooledWorker() (scheduler_worker.cc:224)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x13A27000 0x14225FFF] client SP: 0x14225BA8
    valgrind stack range: [0x71E15000 0x71F14FFF] top usage: 7084 of 1048576
    
    Thread 13: status = VgTs_WaitSys syscall 240 (lwpid 4568)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x74CF0E7: base::WaitableEvent::TimedWait(base::TimeDelta const&) (waitable_event_posix.cc:161)
    ==4522==    by 0x749C173: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:37)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DA45: base::internal::SchedulerWorker::RunPooledWorker() (scheduler_worker.cc:224)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x14228000 0x14A26FFF] client SP: 0x14A26BA8
    valgrind stack range: [0x72131000 0x72230FFF] top usage: 7084 of 1048576
    
    Thread 14: status = VgTs_WaitSys syscall 240 (lwpid 4569)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x74CF0E7: base::WaitableEvent::TimedWait(base::TimeDelta const&) (waitable_event_posix.cc:161)
    ==4522==    by 0x749C173: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:37)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DA45: base::internal::SchedulerWorker::RunPooledWorker() (scheduler_worker.cc:224)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x14A29000 0x15227FFF] client SP: 0x15227BA8
    valgrind stack range: [0x75CAE000 0x75DADFFF] top usage: 6748 of 1048576
    
    Thread 15: status = VgTs_WaitSys syscall 240 (lwpid 4570)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E6FE91: futex_wait_cancelable (futex-internal.h:88)
    ==4522==    by 0x5E6FE91: __pthread_cond_wait_common (pthread_cond_wait.c:502)
    ==4522==    by 0x5E6FE91: pthread_cond_wait@@GLIBC_2.4 (pthread_cond_wait.c:655)
    ==4522==    by 0x74CE763: base::ConditionVariable::Wait() (condition_variable_posix.cc:71)
    ==4522==    by 0x7C46845: cc::SingleThreadTaskGraphRunner::Run() (single_thread_task_graph_runner.cc:123)
    ==4522==    by 0x74ABD6F: base::SimpleThread::ThreadMain() (simple_thread.cc:81)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x1522A000 0x15A28FFF] client SP: 0x15A28D00
    valgrind stack range: [0x75ECE000 0x75FCDFFF] top usage: 5404 of 1048576
    
    Thread 16: status = VgTs_WaitSys syscall 240 (lwpid 4571)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x7468851: base::MessagePumpDefault::Run(base::MessagePump::Delegate*) (message_pump_default.cc:63)
    ==4522==    by 0x7482377: base::RunLoop::Run() (run_loop.cc:102)
    ==4522==    by 0x74AAB81: Run (thread.cc:255)
    ==4522==    by 0x74AAB81: base::Thread::ThreadMain() (thread.cc:337)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x15A2B000 0x16229FFF] client SP: 0x16229BD8
    valgrind stack range: [0x761D2000 0x762D1FFF] top usage: 5404 of 1048576
    
    Thread 17: status = VgTs_Runnable (lwpid 4573)
    ==4522==    at 0x4841160: operator new(unsigned int) (vg_replace_malloc.c:328)
    ==4522==    by 0x9008A27: BindOnce<void (gpu::Scheduler::*)(), base::WeakPtr<gpu::Scheduler>&> (bind.h:219)
    ==4522==    by 0x9008A27: gpu::Scheduler::RunNextTask() (scheduler.cc:546)
    ==4522==    by 0x7452FE7: Run (callback.h:99)
    ==4522==    by 0x7452FE7: base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) (task_annotator.cc:101)
    ==4522==    by 0x746C5E7: base::MessageLoop::RunTask(base::PendingTask*) (message_loop.cc:421)
    ==4522==    by 0x746CA7B: base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) (message_loop.cc:432)
    ==4522==    by 0x746CB79: base::MessageLoop::DoWork() (message_loop.cc:480)
    ==4522==    by 0x7468809: base::MessagePumpDefault::Run(base::MessagePump::Delegate*) (message_pump_default.cc:37)
    ==4522==    by 0x7482377: base::RunLoop::Run() (run_loop.cc:102)
    ==4522==    by 0x74AAB81: Run (thread.cc:255)
    ==4522==    by 0x74AAB81: base::Thread::ThreadMain() (thread.cc:337)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x1622D000 0x16A2BFFF] client SP: 0x16A2BA20
    valgrind stack range: [0x764EE000 0x765EDFFF] top usage: 7084 of 1048576
    
    Thread 18: status = VgTs_WaitSys syscall 252 (lwpid 4574)
    ==4522==    at 0x5D77776: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E02DA1: epoll_wait (epoll_wait.c:30)
    ==4522==    by 0xA4B992F: ??? (in /usr/lib/libevent-2.1.so.6.0.2)
    client stack range: [0x16A2E000 0x1722CFFF] client SP: 0x1722CCA0
    valgrind stack range: [0x7681F000 0x7691EFFF] top usage: 6748 of 1048576
    
    Thread 19: status = VgTs_WaitSys syscall 240 (lwpid 4584)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E6FE91: futex_wait_cancelable (futex-internal.h:88)
    ==4522==    by 0x5E6FE91: __pthread_cond_wait_common (pthread_cond_wait.c:502)
    ==4522==    by 0x5E6FE91: pthread_cond_wait@@GLIBC_2.4 (pthread_cond_wait.c:655)
    ==4522==    by 0x57F9CFD: QWaitCondition::wait(QMutex*, QDeadlineTimer) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x57F9DFF: QWaitCondition::wait(QMutex*, unsigned long) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0xDCFC1DF: ??? (in /usr/lib/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so)
    client stack range: [0x199DD000 0x1A1DBFFF] client SP: 0x1A1DBCF8
    valgrind stack range: [0x7E2C9000 0x7E3C8FFF] top usage: 6412 of 1048576
    
    Thread 20: status = VgTs_WaitSys syscall 240 (lwpid 4586)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E6FE91: futex_wait_cancelable (futex-internal.h:88)
    ==4522==    by 0x5E6FE91: __pthread_cond_wait_common (pthread_cond_wait.c:502)
    ==4522==    by 0x5E6FE91: pthread_cond_wait@@GLIBC_2.4 (pthread_cond_wait.c:655)
    ==4522==    by 0x57F9CFD: QWaitCondition::wait(QMutex*, QDeadlineTimer) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x57F9DFF: QWaitCondition::wait(QMutex*, unsigned long) (in /usr/lib/libQt5Core.so.5.12.5)
    ==4522==    by 0x4E4794F: ??? (in /usr/lib/libQt5Quick.so.5.12.5)
    client stack range: [0x1B0BD000 0x1B8BBFFF] client SP: 0x1B8BBCB0
    valgrind stack range: [0x7E687000 0x7E786FFF] top usage: 7092 of 1048576
    
    Thread 21: status = VgTs_WaitSys syscall 240 (lwpid 4591)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E6FE91: futex_wait_cancelable (futex-internal.h:88)
    ==4522==    by 0x5E6FE91: __pthread_cond_wait_common (pthread_cond_wait.c:502)
    ==4522==    by 0x5E6FE91: pthread_cond_wait@@GLIBC_2.4 (pthread_cond_wait.c:655)
    ==4522==    by 0x74CE763: base::ConditionVariable::Wait() (condition_variable_posix.cc:71)
    ==4522==    by 0x74CF07F: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:223)
    ==4522==    by 0x74CF0AD: base::WaitableEvent::Wait() (waitable_event_posix.cc:154)
    ==4522==    by 0x749C143: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:35)
    ==4522==    by 0x749D751: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:324)
    ==4522==    by 0x749DAD5: base::internal::SchedulerWorker::RunDedicatedWorker() (scheduler_worker.cc:248)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x1DEE5000 0x1E6E3FFF] client SP: 0x1E6E3BF0
    valgrind stack range: [0x80AFC000 0x80BFBFFF] top usage: 6748 of 1048576
    
    Thread 22: status = VgTs_WaitSys syscall 240 (lwpid 4604)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E701D3: futex_reltimed_wait_cancelable (futex-internal.h:142)
    ==4522==    by 0x5E701D3: __pthread_cond_wait_common (pthread_cond_wait.c:533)
    ==4522==    by 0x5E701D3: pthread_cond_timedwait@@GLIBC_2.4 (pthread_cond_wait.c:667)
    ==4522==    by 0x74CE81F: base::ConditionVariable::TimedWait(base::TimeDelta const&) (condition_variable_posix.cc:120)
    ==4522==    by 0x74CF01D: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:221)
    ==4522==    by 0x74CF0E7: base::WaitableEvent::TimedWait(base::TimeDelta const&) (waitable_event_posix.cc:161)
    ==4522==    by 0x749C173: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:37)
    ==4522==    by 0x749D4F1: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:296)
    ==4522==    by 0x749DA45: base::internal::SchedulerWorker::RunPooledWorker() (scheduler_worker.cc:224)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x1EAE6000 0x1F2E4FFF] client SP: 0x1F2E4BA8
    valgrind stack range: [0x80EF1000 0x80FF0FFF] top usage: 7084 of 1048576
    
    Thread 23: status = VgTs_WaitSys syscall 240 (lwpid 4611)
    ==4522==    at 0x5E75466: __libc_do_syscall (libc-do-syscall.S:49)
    ==4522==    by 0x5E6FE91: futex_wait_cancelable (futex-internal.h:88)
    ==4522==    by 0x5E6FE91: __pthread_cond_wait_common (pthread_cond_wait.c:502)
    ==4522==    by 0x5E6FE91: pthread_cond_wait@@GLIBC_2.4 (pthread_cond_wait.c:655)
    ==4522==    by 0x74CE763: base::ConditionVariable::Wait() (condition_variable_posix.cc:71)
    ==4522==    by 0x74CF07F: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) (waitable_event_posix.cc:223)
    ==4522==    by 0x74CF0AD: base::WaitableEvent::Wait() (waitable_event_posix.cc:154)
    ==4522==    by 0x749C143: base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) (scheduler_worker.cc:35)
    ==4522==    by 0x749D4F1: base::internal::SchedulerWorker::RunWorker() (scheduler_worker.cc:296)
    ==4522==    by 0x749DA8D: base::internal::SchedulerWorker::RunSharedWorker() (scheduler_worker.cc:236)
    ==4522==    by 0x74D0815: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:76)
    ==4522==    by 0x5E6AD4B: start_thread (pthread_create.c:486)
    ==4522==    by 0x5E02A5B: ??? (clone.S:73)
    client stack range: [0x1FD67000 0x20565FFF] client SP: 0x20565BF0
    valgrind stack range: [0x833DB000 0x834DAFFF] top usage: 6748 of 1048576
    

    Regarding to testing suite. Did you already receive the "testing webpage" from your collage?

    Regards,
    Andy

  • Hi Andy,

    I am working with Frank on downloading the test case. Also, there is a bug with the GPU driver and I have shared the updated binaries with Frank. I am wondering if you could please update those binaries in the "rootfs" folder and re-run your test. 

    Regards,
    Krunal 

  • Hello Krunal,

    I have tested your driver. This is amazing, everything is working as expected. I have tested simplebrowser, quicknanobrowser and also the most important my application. All of them are working as well. (Do you need some logs there?)

    How did you find it?
    What was the problem there?
    Could you please provide an official fix in repository?

    Regards,
    Andy

  • Hello Andrej,

    Glad to hear your application is working. The GPU driver is divided into two parts: "UM (User Mode) and "KM (Kernel Mode)". The KM has the source code available on our git repo but for the UM, we only provide binaries (no source code). Internally, we were able to build UM with the debug symbols and with Valgrind, we found the file/function/line-number that was causing the heap overflow. The driver was trying to upload a texture and the width/stride was calculated incorrectly.  We will update the binaries in our repository but as of now, I do not have a timeline and I will get back to you.

    Regards,
    Krunal

  • Hello Krunal,

    Today I have created a clean build for my machine. I have flashed the FW and copied your testing OpenGL driver to device. But it's not working...

    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/opt/sysone/s1pdata/tmp/qml/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/iconengines" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/iconengines/libqsvgicon.so"
    Found metadata in lib /usr/lib/plugins/iconengines/libqsvgicon.so, metadata=
    {
        "IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
        "MetaData": {
            "Keys": [
                "svg",
                "svgz",
                "svg.gz"
            ]
        },
        "archreq": 0,
        "className": "QSvgIconPlugin",
        "debug": false,
        "version": 330752
    }
    
    
    Got keys from plugin meta data ("svg", "svgz", "svg.gz")
    QFactoryLoader::QFactoryLoader() checking directory path "/opt/sysone/s1pdata/tmp/qml/iconengines" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/opt/sysone/s1pdata/tmp/qml/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/opt/sysone/s1pdata/tmp/qml/accessible" ...
    Cannot find EGLConfig, returning null config
    PVR:(Error): LoadCompilerModule: Couldn't load library libglslcompiler.so [0, ]
    QOpenGLShader::compile(Vertex): failed
    *** Problematic Vertex shader source code ***
    #line 1
    attribute highp vec3 vertexCoord;attribute highp vec2 textureCoord;varying highp vec2 uv;uniform highp mat4 vertexTransform;uniform highp mat3 textureTransform;void main() {   uv = (textureTransform * vec3(textureCoord,1.0)).xy;   gl_Position = vertexTransform * vec4(vertexCoord,1.0);}
    ***
    Could not link shader program:
     "failed"

    I think, the main difference between "working" and not "working" solution is, that there are only stripped libraries. (For debug purposes I have used full QT and glibc libraries).

    Regards,
    Andy

  • Hi Andy,

    Could you please explain what you meant by "there are only stripped libraries"? By default, the libglslcompiler.so should be included in the "/usr/lib" directory.

    Regards,
    Krunal

  • Krunal Bhargav34 said:

    Hi Andy,

    Could you please explain what you meant by "there are only stripped libraries"? By default, the libglslcompiler.so should be included in the "/usr/lib" directory.

    Regards,
    Krunal

    Hello Krunal,

    I mean, that there aren't any libraries with debug symbols like before. Previously I have copied them a glibc, fontconfig, qt ... and some other libraries with debug symbols to obtain a full dump. Now there is a general file system. I have just extracted there an archive, which you gave me as before.

    Yes, libglslcompiler.so (inside /usr/lib) is a link to libglslcompiler with 4948957 also in /usr/lib. If the library is not there, shouldn't be there an message like "no such file or directory" instead?

    /EDIT:

    I have replace the failing library (libglslcompiler.so.1.17.4948957) with previous version(um- 2a2e5bb090ced870d73ed4edbc54793e952cc6d8) and it worked. So please provide also a new version of libglslcompiler.

    Thank you,
    Andy