waynepiekarski / XPlaneCDU

XPlaneCDU is a remote control interface for the Control Display Unit (CDU) present in X-Plane 11. This app does not provide an FMS, but simply a way to control the existing CDU from an Android tablet or phone. Currently it works with the Zibo Boeing 737 aircraft.
http://xplane.tinmith.net
GNU General Public License v3.0
38 stars 4 forks source link

QT5Core.dll recently started causing X-Plane CTDs #5

Open WebMaximus opened 5 years ago

WebMaximus commented 5 years ago

Have been enjoying this great plugin with the Zibo mod for a long time now with no issues what so ever.

Recently though, I've had a number of CTDs the last couple of days in the middle of a flight. Checking the Application log in Windows Event Viewer, it says the faulting module is the QT5Core.dll file located in ...\X-Plane 11\Resources\plugins\ExtPlane-Master-MinGW-18Apr2018.

When I searched my file system for this file (QT5Core.dll), I found out I have multiple copies of it in different locations and all seem to be different versions of it. Which made me think if the issue could be a conflict of sorts if/when different versions of this file is used/called by different applications at the same time?

No clue how all this really works from a coding perspective, just guessing here now.

I'm using Windows 10 Pro Build 1809, X-Plane 11.34 and Zibo 3.34 RC3.14.

I was thinking maybe I could try simply replace the QT5Core.dll found in ...\X-Plane 11\Resources\plugins\ExtPlane-Master-MinGW-18Apr2018 with the same file from another location but of a different version.

Here's the list where this file was found when I searched the drive where I keep X-Plane and anything else related to X-Plane. Sorry for the crappy characters but at least you'll see the path for each version of the file which I think is of most interest.

 Volume in drive F is FUN
 Volume Serial Number is 442F-D70B

 Directory of F:\Program Files\swift-0.9.1-64bit\bin

2019-04-18  21:55         6ÿ130ÿ176 Qt5Core.dll
               1 File(s)      6ÿ130ÿ176 bytes

 Directory of F:\Program Files (x86)\Navigraph\FMS Data Manager

2016-08-11  11:12         4ÿ626ÿ432 Qt5Core.dll
               1 File(s)      4ÿ626ÿ432 bytes

 Directory of F:\Program Files (x86)\Navigraph\Simlink

2017-05-08  13:12         4ÿ654ÿ080 Qt5Core.dll
               1 File(s)      4ÿ654ÿ080 bytes

 Directory of F:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win32

2019-04-02  15:56         4ÿ557ÿ824 Qt5Core.dll
               1 File(s)      4ÿ557ÿ824 bytes

 Directory of F:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win64

2019-04-02  15:56         5ÿ677ÿ568 Qt5Core.dll
               1 File(s)      5ÿ677ÿ568 bytes

 Directory of F:\X-Plane 11\Resources\plugins\ExtPlane-Master-MinGW-18Apr2018

2018-04-18  21:48         5ÿ565ÿ440 Qt5Core.dll
               1 File(s)      5ÿ565ÿ440 bytes

     Total Files Listed:
               6 File(s)     31ÿ211ÿ520 bytes
               0 Dir(s)  333ÿ558ÿ829ÿ056 bytes free

And here's the complete error message found in the Windows Application log:

Log Name:      Application
Source:        Application Error
Date:          2019-06-15 16:19:41
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      TheNest
Description:
Faulting application name: X-Plane.exe, version: 11.0.34.0, time stamp: 0x5cd1d721
Faulting module name: Qt5Core.dll, version: 5.9.3.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x00000000002e8b75
Faulting process id: 0x3c84
Faulting application start time: 0x01d523775546b66f
Faulting application path: F:\X-Plane 11\X-Plane.exe
Faulting module path: F:\X-Plane 11\Resources\plugins\ExtPlane-Master-MinGW-18Apr2018\Qt5Core.dll
Report Id: 165d86d3-1480-4cba-8327-ca416d20ea75
Faulting package full name: 
Faulting package-relative application ID: 
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2019-06-15T14:19:41.273428200Z" />
    <EventRecordID>22346</EventRecordID>
    <Channel>Application</Channel>
    <Computer>TheNest</Computer>
    <Security />
  </System>
  <EventData>
    <Data>X-Plane.exe</Data>
    <Data>11.0.34.0</Data>
    <Data>5cd1d721</Data>
    <Data>Qt5Core.dll</Data>
    <Data>5.9.3.0</Data>
    <Data>00000000</Data>
    <Data>c0000005</Data>
    <Data>00000000002e8b75</Data>
    <Data>3c84</Data>
    <Data>01d523775546b66f</Data>
    <Data>F:\X-Plane 11\X-Plane.exe</Data>
    <Data>F:\X-Plane 11\Resources\plugins\ExtPlane-Master-MinGW-18Apr2018\Qt5Core.dll</Data>
    <Data>165d86d3-1480-4cba-8327-ca416d20ea75</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>
waynepiekarski commented 5 years ago

This is very strange. I don't think there will be a conflict with any of the other QtCore.dll versions because most of them are not in use as plugins within X-Plane. The one I would be wary of is the Navigraph Simlink plugin, which uses QtCore.dll, but is also a plugin within X-Plane.

Just out of curiosity, can you try removing the Simlink plugin to see if that stops the crashing?

Did you update anything recently to cause this? Otherwise it could be that Simlink pushed an update which included a new QtCore.dll.

One other thing you could try is to download the latest builds for ExtPlane directly from github.com/vranki where his latest builds fix the bugs I was trying to address. He is probably linking a different Qt library.

WebMaximus commented 5 years ago

Thanks for your very prompt reply, much appreciated!

As for the other files and being used or not when running X-Plane, in fact both swift as well as Steam is used as well. swift is the new online client for VATSIM and Steam/SteamVR is used since I do all my flying in VR using a pair of Samsung Odyssey Plus glasses.

Since I didn't do any changes to my system or what programs/plugins I'm using and I only had this issue for the last couple of days, the only thing I can think of is actually Steam. That one was updated recently. So maybe that one is the culprit, that they updated the QT5Core.dll file to a new/other version which is now somehow conflicting with the one used by your plugin.

Temporarily disabling other stuff using QT5Core.dll would of course be a way forward. Problem though is this CTD doesn't happen on every flight. And I have no clue what triggers the CTD. Meaning it would be a very hard and time-consuming way troubleshooting the issue.

I think what I'll try for now is what you suggested to use the ExtPlane plugin found at https://github.com/vranki/ExtPlane/releases/ which I hope is the correct one?

Just gave it a quick try by loading the Zibo mod at the gate and the FMC did came up on my Android tablet just fine and I was able to press different buttons, move through the pages etc. So seems to be OK.

And what is very promising is how I noticed this ExtPlane version only comes with 2 files, lin.xpl and win.xpl. They are both located in a sub-folder called 64. Compared to the version I've used in the past that doesn't have the sub-folder called 64. And comes with a number of .dll files including the one discussed...QT5Core.dll.

So...even if I'm a bit puzzled how the plugin still seems to work without all these files...without the QT5Core.dll file in there...there's nothing that could cause the CTD anymore...I hope :wink:

WebMaximus commented 5 years ago

Did a flight tonight with no CTD issues, very happy about that!

A bit too early to say for sure but it does look promising.

So many thanks again for the suggestion downloading the latest build for ExtPlane directly from github.com/vranki

waynepiekarski commented 5 years ago

I think vranki is doing static builds now, where everything is linked in to a single binary. So this removes any dependencies from loading extra DLLs. This is definitely the better way to do it. When I did my builds last year, I couldn't work out how to make them static, Qt makes this really hard to do. vranki did a lot of work to make this possible and there were some problems a while ago, so it is good to hear his builds are now working. I should start testing them myself because I would like to stop maintaining my own fork of ExtPlane.