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

qmllint segmentation fault in QQmlSA::Element::internalId

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.8.1, 6.8, 6.9.0 FF
    • 6.6.2, 6.7.2
    • QML: Tooling
    • None
    • Debian GNU/Linux sid amd64
      Qt 6.6.2 from sid or 6.7.2 from experimental
    • Linux/X11
    • 9c7cee6be (dev), 4571685f7 (6.8)

    Description

      I tried to build GammaRay v3.1.0, but during the build qmllint crashed with segmentation fault.

      The file on which it failed can be found here.

      Here is the gdb session:

      # gdb /usr/lib/qt6/bin/qmllint
      GNU gdb (Debian 15.1-1) 15.1
      Copyright (C) 2024 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.
      Type "show copying" and "show warranty" for details.
      This GDB was configured as "x86_64-linux-gnu".
      Type "show configuration" for configuration details.
      For bug reporting instructions, please see:
      <https://www.gnu.org/software/gdb/bugs/>.
      Find the GDB manual and other documentation resources online at:
          <http://www.gnu.org/software/gdb/documentation/>.
      
      For help, type "help".
      Type "apropos word" to search for commands related to "word"...
      Reading symbols from /usr/lib/qt6/bin/qmllint...
      Reading symbols from /usr/lib/debug/.build-id/57/843c0808cc3dc6b38224508fd0fd4c9e723298.debug...
      (gdb) r /tmp/quick-event-handling.qml 
      Starting program: /usr/lib/qt6/bin/qmllint /tmp/quick-event-handling.qml
      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      Warning: /tmp/quick-event-handling.qml:8:1: T.Button was not found. Did you add all import paths? [import]
        Author: Volker Krause <volker.krause@kdab.com>
          ^
      Info: Did you mean "Button"?
        AuButtonhor: Volker Krause <volker.krause@kdab.com>
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:8:1: T.Button was not found. Did you add all import paths? [import]
        Author: Volker Krause <volker.krause@kdab.com>
          ^
      Info: Did you mean "Button"?
        AuButtonhor: Volker Krause <volker.krause@kdab.com>
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:26:9: unknown grouped property scope anchors. [unqualified]
              anchors.fill: parent
              ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:36:9: unknown grouped property scope anchors. [unqualified]
              anchors.fill: parent
              ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:24:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:26:9: 'anchors' is used but it is not resolved [unresolved-type]
              anchors.fill: parent
              ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:24:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:26:9: 'anchors' is used but it is not resolved [unresolved-type]
              anchors.fill: parent
              ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:24:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:24:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:34:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:36:9: 'anchors' is used but it is not resolved [unresolved-type]
              anchors.fill: parent
              ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:34:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:36:9: 'anchors' is used but it is not resolved [unresolved-type]
              anchors.fill: parent
              ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:34:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:34:5: 'Button' is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:24:5: Type Button is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:34:5: Type Button is used but it is not resolved [unresolved-type]
          Button {
          ^^^^^^
      Warning: /tmp/quick-event-handling.qml:26:17: Binding assigned to "fill", but no property "fill" exists in the current element. [missing-property]
              anchors.fill: parent
                      ^^^^
      Warning: /tmp/quick-event-handling.qml:27:17: Binding assigned to "margins", but no property "margins" exists in the current element. [missing-property]
              anchors.margins: 20
                      ^^^^^^^
      Warning: /tmp/quick-event-handling.qml:28:9: Binding assigned to "text", but no property "text" exists in the current element. [missing-property]
              text: "Click me!"
              ^^^^
      Warning: /tmp/quick-event-handling.qml:36:17: Binding assigned to "fill", but no property "fill" exists in the current element. [missing-property]
              anchors.fill: parent
                      ^^^^
      Warning: /tmp/quick-event-handling.qml:37:17: Binding assigned to "leftMargin", but no property "leftMargin" exists in the current element. [missing-property]
              anchors.leftMargin: parent.width / 2
                      ^^^^^^^^^^
      Warning: /tmp/quick-event-handling.qml:38:9: Binding assigned to "text", but no property "text" exists in the current element. [missing-property]
              text: "Hidden button"
              ^^^^
      Warning: /tmp/quick-event-handling.qml:39:9: Binding assigned to "opacity", but no property "opacity" exists in the current element. [missing-property]
              opacity: 0
              ^^^^^^^
      
      Program received signal SIGSEGV, Segmentation fault.
      QQmlSA::Element::internalId (this=this@entry=0x7fffffffb720) at ./src/qmlcompiler/qqmlsa.cpp:616
      616	    return QQmlJSScope::scope(*this)->internalName();
      (gdb) bt
      #0  QQmlSA::Element::internalId (this=this@entry=0x7fffffffb720) at ./src/qmlcompiler/qqmlsa.cpp:616
      #1  0x00007ffff2f35a8e in AttachedPropertyTypeValidatorPass::addWarning (this=0x5555559b54f0, attachType=..., allowedTypes=..., allowInDelegate=<optimized out>, warning=...)
          at ./src/plugins/qmllint/quick/quicklintplugin.cpp:89
      #2  operator() (__closure=__closure@entry=0x7fffffffbc10, attachedType=..., allowedTypes=..., warning=..., allowInDelegate=allowInDelegate@entry=false)
          at ./src/plugins/qmllint/quick/quicklintplugin.cpp:657
      #3  0x00007ffff2f38764 in QmlLintQuickPlugin::registerPasses (this=<optimized out>, manager=<optimized out>, rootElement=<optimized out>)
          at ./src/plugins/qmllint/quick/quicklintplugin.cpp:698
      #4  0x00007ffff7f3ea9a in operator() (__closure=__closure@entry=0x7fffffffd430, mapper=mapper@entry=0x0) at ./src/qmlcompiler/qqmljslinter.cpp:568
      #5  0x00007ffff7f3f519 in QQmlJSLinter::lintFile (this=this@entry=0x7fffffffde90, filename=..., fileContents=<optimized out>, 
          fileContents@entry=0x0, silent=<optimized out>, json=<optimized out>, json@entry=0x0, qmlImportPaths=..., qmldirFiles=..., resourceFiles=..., categories=...)
          at ./src/qmlcompiler/qqmljslinter.cpp:620
      #6  0x000055555555c50a in main (argv=<optimized out>, argc=<optimized out>) at ./tools/qmllint/main.cpp:428
      

      The output itself also looks suspicious. E.g. qmllint suggests to replace Author: with AuButtonhor: in the comment!

      Attachments

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

        Activity

          People

            ulherman Ulf Hermann
            mandriver Dmitry Shachnev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes