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

Virtual Keyboard Crash in Wayland of Qt Application Manager

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 6.2.4
    • Qt version: 6.2.4
      Yocto version: 3.3.4
      Compiler version: GCC 10
      Device: i.MX 8M Mini
    • Linux/Wayland

    Description

      We have a crash when using the Qt Virtual Keyboard inside the Qt Application Manager on an embedded device.
      The virtual keyboard is displayed, but as soon as we hit a virtual keyboard key, the sub-application crashes.
      The sub-application crashes but appman is still running.
      We do not have the crash when running on linux desktop (Ubuntu 20.04).
      We tested with the official Qt sample Application Manager Hello Word, with a basic virtual keyboard added to the system UI, and a TextEdit added the hello-world.blue sub-application, the code is provided as attachment.

      We have this line in the log of appman: "Data too big for buffer (4248 > 4096)."
      The value in the log can be different than 4248.
      The message comes from the Wayland compositor: https://github.com/wayland-project/wayland/blob/1.20.0/src/connection.c#L80
      The buffer size is hard coded here: https://github.com/wayland-project/wayland/blob/1.20.0/src/connection.c#L57

      Full log of appman:

      [WARN | am.deployment] The current locale is not UTF-8 capable. Trying to find a capable one now, but this is time consuming and should be avoided
      [WARN | am.deployment] No --installation-dir command line parameter or applications/installationDir configuration key specified. It won't be possible to install, remove or access installable packages.
      [INFO | am.system] NOTICE: running on private D-Bus session bus to avoid conflicts:
      [INFO | am.system] DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-M54tLUt4DU,guid=3ec22e58f4cca7c94afd75866241d14c
      [WARN | default] QQmlEngine::setContextForObject(): Object already has a QQmlContext
      [INFO | am.graphics] WindowManager: running in Wayland mode [socket: "qtam-wayland-0"]
      Data too big for buffer (4248 > 4096).
      error in client communication (pid 591)
      Error sending request: Broken pipe
      [WARN | default | h.blue] The Wayland connection broke. Did the Wayland compositor die?

      How we start the application:

      export FB_MULTI_BUFFER=2
      export QT_QPA_EGLFS_FORCEVSYNC=1
      export QT_QPA_EGLFS_FORCE888=1
      export QT_QPA_EGLFS_KMS_ATOMIC=1
      export QT_QPA_EGLFS_KMS_CONFIG=/etc/kms.conf
      export QTWEBENGINE_DISABLE_GPU_THREAD=1
      export QT_IM_MODULE=qtvirtualkeyboard
      appman --builtin-apps-manifest-dir apps system-ui.qml -platform eglfs
      

      The linux system runs with eglfs but the appman handles the wayland compositor.

      We also talked with Robert Griebl and he said to create a ticket because it was more linked to virtual keyboard and wayland than its development on Qt Application Manager.

      Attachments

        Activity

          People

            rgriebl Robert Griebl
            fleroy Florian Leroy
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated: