Saved Q400 flight on P3D 4.5 caused crash to desktop
Hi - I've been seeing repeated crash to desktops when I try and load a saved Q400 flight. I've raised this on the P3D forum here: https://prepar3d.com/forum/viewtopic.php?f=6312&t=143510&p=247637#p247637 so please use that for additional info.
My setup:
Prepar3d 4.5.14.34698
Majestic Q400 Pro version (not sure how to find the version)
ActiveSkyX
(also PMDG 737 installed, but don't think that is relevant)
Intel i7-11700K, 32Gb RAM, Asus Z590-P Mobo, Nvidia RTX 3070 (471.96 driver)
From the other forum:
I did some tests:-
I created a brand new flight with a Majestic Q400 at Southampton, popped out a few docked panels (MCDU etc) and saved the file. I then tried to immediately reload that flight. The first time it succeeded. In my head I thought I'd try this a couple of times without restarting P3D to see if the fact the Q400 had already initialised something might make things succeed. However this crashed on my 2nd attempt to load the file. (Different crash to normal - might have been the ucrtbase.dll dump I describe further down, but didn't check). All the remaining crash tests I did produced the normal ntdll.dll (and same offset) errors.
NOTE: I've zipped up one of the NTDLL.DLL dumps (it was 4Gb, but it's ~750mb when zipped), and it's here with the newly created save files:
https://drive.google.com/file/d/1kI9l_W ... sp=sharing
Further tests (using that file I just saved):
1: Open up P3D again and immediately load that flight: = Crash
2: Load the default P3D flight (think its an F35 somewhere, I've always left the default flight alone as it seems to break things if it includes anything), then load the test flight I just created:= Crash
3: Start P3D, new flight with a Q400 (worked), then load the saved file: worked!
4: Following test (3), load the file again: = Crash. (though on most subsequent tests this seems to work)
5: Restart P3D, Repeat (3) again:= worked!
6: Repeat (4) again, i.e. after loading a new Q400 flight, loading the saved flight worked. Then I then loaded it 3 more times and they all worked.
Test (3) seems to work consistently (ran it 3 or 4 times) - if you start a NEW Q400 flight, then load your saved flight it generally works.
As you can see the crash is quite frequent, but not 100%, so probably something isn't initialised properly and may just depend on what was in memory when it started as to whether it works or crashes.
All of the tests had the same error (same module, same offset) except one (probably that first test) which caused this (in ucrtbase, not ntdll):
CODE: SELECT ALL
Faulting application name: Prepar3D.exe, version: 4.5.14.34698, time stamp: 0x5e94b5c2
Faulting module name: ucrtbase.dll, version: 10.0.19041.789, time stamp: 0x2bd748bf
Exception code: 0xc0000409
Fault offset: 0x000000000007286e
Faulting process id: 0x5d98
Faulting application start time: 0x01d7b9cdc08e044e
Faulting application path: C:\Program Files\Lockheed Martin\Prepar3D v4\Prepar3D.exe
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
Report Id: dd247af8-641c-4071-aa9a-92ac79f5336e
Faulting package full name:
Faulting package-relative application ID:
It is obviously really annoying that this happens, as being able to open a saved game is kind of important! As I said, I use this mainly so that I have all the window positions etc correct. Please take a look at the dump file and let me know if you need more info.
Thanks, Peter
For completeness: the usual crash is this:
Faulting application name: Prepar3D.exe, version: 4.5.14.34698, time stamp: 0x5e94b5c2
Faulting module name: ntdll.dll, version: 10.0.19041.1202, time stamp: 0x4f115fac
Exception code: 0xc0000374
Fault offset: 0x00000000000ff199
Faulting process id: 0x5530
Faulting application start time: 0x01d7b9cfd1aa0e75
Faulting application path: C:\Program Files\Lockheed Martin\Prepar3D v4\Prepar3D.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: 22ceebef-4034-499c-b4cd-e3fe49524177
Faulting package full name:
Faulting package-relative application ID:
Comments
Ah, forgot to say, I have GSX (lvl2) installed as well if that makes a diff.
Following comment on the P3D forum (thanks to Michel!) I have hacked about the *.fxml file and tried removing different pieces. I tried removing various sections and it turns out to be the panels. The game puts 38 panel entries in normally. I basically did a "binary search" technique of deleting half and seeing what still caused a crash. I tracked it down to the 2 panels which were undocked. If I don't have those, it seems ok. I tried changing the "Undocked" to "False" but it still crashes - if I remove those entirely, it works though.
and
Ultimately then, it doesn't seem to like loading undocked panels I think, which is a bit of a nightmare in a home cockpit! Is there any way you could look at this and let me know if it can be fixed please?
Many thanks, Peter
Hello,
Thank you for the extensive research on this. We are aware of some inconsistencies that do have the probability of causing a CTD, which is going to be looked at in depth. We have addressed a few issues in the past but will certainly add this to the on-going bug tracker and have a look at your post and try to replicate. There is another post recently made similar to yours.
Thanks
Thanks Kroswynd - If you need any further info then please let me know - it's easy to recreate, I'll try and keep an eye on this topic. My current theory is that this relates to undocked panels moved to secondary screens. My setup uses 3 monitors - the 2 "main" ones are configured as an NVidia surround, then a third screen (geekily setup with a wooden overlay with holes in it that match the panels) then holds those undocked screens. I run the whole setup in P3D's "fullscreen" mode normally. I wonder if there's an issue where something is considered out of range. I'll try at some point to leave panels docked and save, or to undock but leave on the main p3d screen and see if that leads anywhere.
Cheers, Peter
Aaand the winner is....
the "Visible" property.
The 2 panels I tweaked (the 2 I undocked and moved to my 2nd screen) are probably unsurpringly the 2 causing the issue. You have to fix all the panels else it'll still crash of course.
In this example:
If Visible = False, everything works - I can load the scenario no problem. Oddly, when P3D loads, I can load the scenario and it normally first shows you the main screen with your chosen scenario now loaded and ready to jump into (i.e. you're still in the menus). If it is going to crash it doesn't even make it to that screen - picking the file and pressing load will kill you - it's not even tried to load the plane itself!
I think that is as far as I can take this for now, but at least I can create a workaround. If you save a scenario, you can put the windows where you want, but then edit the file after saving them and set Visible=false. This will of course mean clicking each panel to pop it out, but it will be where you placed it.