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

There is a crash and signal loss issue with QT5.6 on Windows Server 2008 R2

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • Not Evaluated
    • None
    • 5.6.0
    • Core: Event loop
    • None

    Description

      Hello,

      I am a developer, and recently some clients reported abnormal behavior in certain computers during business operations. After investigating, we found that signals sent by Qt were being lost. The Qt version in use is 5.6.0. It's important to note that not all Server 2008 R2 instances are affected; the issue is not reproducible in my machine. I can't update qt version because my software need support windows xp.

      I created a test program and found that even with a very simple test program, running it under the SYSTEM account results in the issue. However, there are no problems when running it under a user account. The identified issues are as follows:

      If the Qt program is a GUI application that creates interfaces internally, it crashes after some time in the event loop (approximately a few seconds), and all signals during that period are lost.

      If the Qt program is a non-GUI application that does not create any interfaces internally, it doesn't crash, but all signals are still lost.

      Attached is the source code of the test program, which has three running modes:

      Command line argument "/regsvc" creates a service named "TestQtSignal." This service starts the process with the "/svc" command line argument, allowing it to run in service mode.

      Command line argument "/svc" starts the process without any command line.

      No command line creates an object that inherits QObject. This object internally creates two threads to send signals, and the main thread outputs log information upon receiving signals.

      Testing Procedure:

      Compile and deploy the project.
      Run the executable with administrator privileges using "/regsvc" to register the service.
      Start the "TestQtSignal" service from the services.
      Wait for 30 seconds (this wait time can be modified in the code).
      Check dbgview or the log files in the "toolslog" folder next to the test program. In the case of running under the SYSTEM account, only "sig" is present, and "slot" is missing. However, running under a user account works correctly.
      To test GUI application scenarios, modify the qt_test object to inherit QWidget, and you will observe a crash in this case.

      I appreciate your assistance in examining this issue. Thank you very much!

      Attachments

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

        Activity

          People

            thiago Thiago Macieira
            chen-qax chen-qax
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes