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

QTranslator deadlocks trying to translate translation file loading error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.11.0 FF
    • 6.10.0 Beta1
    • Core: Locales (i18n)
    • None
    • Linux/Wayland
    • f03ab44e0 (dev)

    Description

      Seems like QTranslator deadlocks whenever it tries to load a translation file that doesn't exist because it tries to translate the error, during which it tries to lock the translations mutex again. Probably introduced by ec3a4590fd35ff9e674ecd77173f1ab0323b19f7. Backtrace:

      (gdb) bt
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x00007ffff5733c56 in QtLinuxFutex::_q_futex (addr=<optimized out>, op=0, val=3, val2=0, addr2=0x0, val3=0)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/thread/qfutex_linux_p.h:48
      #2  QtLinuxFutex::futexWait<QBasicAtomicPointer<QMutexPrivate> > (futex=..., expectedValue=expectedValue@entry=0x3)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/thread/qfutex_linux_p.h:67
      #3  0x00007ffff57339b9 in QBasicMutex::lockInternal (this=0x5555555e9e00)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/thread/qmutex.cpp:651
      #4  0x00007ffff54f7c48 in QBasicMutex::lock (this=<optimized out>)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/thread/qmutex.h:44
      #5  0x00007ffff558e9ce in QMutexLocker<QMutex>::QMutexLocker (this=0x7fffffffca80, mutex=0x5555555e9e00)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/thread/qmutex.h:255
      #6  QCoreApplication::translate (context=context@entry=0x7ffff54ca859 "QIODevice", sourceText=<optimized out>, 
          disambiguation=disambiguation@entry=0x0, n=n@entry=-1)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:2309
      #7  0x00007ffff55f7d7d in standardLibraryErrorString (errorCode=<optimized out>)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qsystemerror.cpp:101
      #8  0x00007ffff55f7e47 in QSystemError::stdString (errorCode=errorCode@entry=2)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qsystemerror.cpp:128
      #9  0x00007ffff5565664 in QResourceFileEngine::open (this=<optimized out>, flags=..., 
          permissions=std::optional [no contained value]) at [home]/ksrc6/qt/dev/qtbase/src/corelib/io/qresource.cpp:1455
      #10 0x00007ffff55441f1 in QFile::open (this=this@entry=0x7fffffffcc60, mode=mode@entry=...)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/global/qflags.h:77
      #11 0x00007ffff55fb371 in QTranslatorPrivate::do_load (this=0x5555559f3fd0, realname=..., directory=...)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qtranslator.cpp:540
      #12 0x00007ffff55fc36c in operator() (__closure=__closure@entry=0x7fffffffcd80)
          at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qtranslator.cpp:650
      #13 0x00007ffff55fc865 in QTranslatorPrivate::load_translation (this=this@entry=0x5555559f3fd0, locale=..., filename=..., 
          prefix=..., directory=..., suffix=...) at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qtranslator.cpp:658
      #14 0x00007ffff55fcc75 in QTranslator::load (this=<optimized out>, locale=..., filename=..., prefix=..., directory=..., 
          suffix=...) at [home]/ksrc6/qt/dev/qtbase/src/corelib/kernel/qtranslator.cpp:754
      #15 0x00007ffff76b2f63 in Translator::setLanguage (this=0x5555559fc1a0, aLanguage=...)
          at [project]/src/controllers/Translator.cpp:59
      #16 0x00007ffff76a3877 in ProfileController::setGlobalLanguage (this=0x5555558969c0, language=...)
          at [project]/src/controllers/ProfileController.cpp:168
      #17 0x00007ffff76a2cd0 in ProfileController::ProfileController (this=0x5555558969c0, manager=0x5555559fc340)
          at [project]/src/controllers/ProfileController.cpp:69
      #18 0x00007ffff769db3e in ControllerManager::ControllerManager (this=0x5555559fc340, aOptions=..., parent=0x7fffffffd450)
          at [project]/src/controllers/ControllerManager.cpp:247
      #19 0x00007ffff7533d79 in Application::exec (this=0x7fffffffd450) at [project]/src/Application.cpp:376
      #20 0x0000555555560292 in main (argc=1, argv=0x7fffffffd608) at [project]/src/main.cpp:93
       

      Attachments

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

        Activity

          People

            kkohne Kai Köhne
            ahartmetz Andreas Hartmetz
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes