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

QSqlDatabase::close may lead to crash



    • Bug
    • Resolution: Done
    • P4: Low
    • None
    • 5.2.0, 5.3.0 Beta1
    • SQL Support
    • None
    • Debian Wheezy and Mageia 4 Linux
    • 452ad2bb1358ad5206440457fecbac92779dc680


      Hi all

      I have a very weird problem with crash after calling QSqlDatabase::close().
      This is what I found:

      I've a QSqlDatabase object hold in an object. This object is hold in std::unique_ptr. I use this QSqlDatabase to talk with MySQL server.

      When the application is being closed, and my object with QSqlDatabase object is being destroyed - a close() in QSqlDatabase is being called. This causes a crash.

      The problem is that inside of QSqlDatabase::close() a close() on driver is being called, but plugin with mysql driver was already unloaded! So implementation of driver refers to invalid memory.

      Gdb shows, that mysql plugin is being unloaded on application close, while some of the objects refering to it were not destroyed yet.

      I've tried to reproduce it on a smaller example without succeed.

      I could reproduce the problem on two machines (Mageia 4 Linux and Debian Wheezy).


        1. broom.zip
          155 kB
        2. kactivitymanagerd-gdb.txt
          14 kB
        3. sample.tgz
          1 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.



            andysh Andy Shaw
            kicer Michał Walenciak
            17 Vote for this issue
            18 Start watching this issue



              Gerrit Reviews

                There are no open Gerrit changes