Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-25417

Possible crash in StringTable on shutdown

    XMLWordPrintable

    Details

    • Commits:
      f4ab1279fd55a00e2bede18ec9ad283c668b46bd (qt-creator/tqtc-qt-creator/master)

      Description

      To reproduce:

      Apply the https://codereview.qt-project.org/c/qt-creator/qt-creator/+/337359 patch. It just adds some debug printouts and one delay.

      Load any session and as soon as you see "GC started" printout, close quickly Creator. Please notice, that in this case the StringTablePrivate instance was already desctucted in main thread, while the other thread is still executing StringTablePrivate::GC().

      Call stacks on crash:

      The GC's thread:

                                                                     
      1 isQStringInUse                    stringtable.cpp  130 0x7fffd06cd42c 
      2 StringTablePrivate::GC            stringtable.cpp  158 0x7fffd06cd60f 
      3 StringTablePrivate::GCRunner::run stringtable.cpp  61  0x7fffd06cd804 
      4 QThreadPoolThread::run            qthreadpool.cpp  100 0x7ffff60b61d1 
      5 QThreadPrivate::start             qthread_unix.cpp 329 0x7ffff60b030e 
      6 start_thread                                           0x7ffff53483f9 
      7 clone                                                  0x7ffff5bb4b53 
      

      The main thread:

                                                                                                   
      1  pthread_cond_wait * *GLIBC_2.3.2                                                   0x7ffff534e6c2 
      2  QWaitConditionPrivate::wait                            qwaitcondition_unix.cpp 146 0x7ffff60bce86 
      3  QWaitCondition::wait                                   qwaitcondition_unix.cpp 225 0x7ffff60bcbcb 
      4  QThreadPoolPrivate::waitForDone                        qthreadpool.cpp         305 0x7ffff60b6e79 
      5  QThreadPoolPrivate::waitForDone                        qthreadpool.cpp         315 0x7ffff60b6f00 
      6  QThreadPool::waitForDone                               qthreadpool.cpp         754 0x7ffff60b7c60 
      7  QCoreApplication::~QCoreApplication                    qcoreapplication.cpp    883 0x7ffff63187c0 
      8  QGuiApplication::~QGuiApplication                      qguiapplication.cpp     678 0x7ffff6aa948c 
      9  QApplication::~QApplication                            qapplication.cpp        706 0x7ffff7412e55 
      10 SharedTools::QtSingleApplication::~QtSingleApplication qtsingleapplication.cpp 99  0x41951f       
      11 main                                                   main.cpp                584 0x40e934       
      

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              jkobus Jarek Kobus
              Reporter:
              jkobus Jarek Kobus
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes