Dedicated Server Crash when memreport -full

Hi,

My dedicated server is crashing when using UnrealFrontend to do a memreport -full on it.

Here is the start of the error stacktrace:

LogWindows:Error: === Critical error: ===
LogWindows:Error: 
LogWindows:Error: Fatal error!
LogWindows:Error: 
LogWindows:Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000048
LogWindows:Error: 
LogWindows:Error: GameServer.exe!UParticleSystemComponent::GetUsedMaterials() [c:\users\altrue\documents\unreal projects\unrealengine\engine\source\runtime\engine\private\particles\particlecomponents.cpp:6723]
LogWindows:Error: GameServer.exe!UPrimitiveComponent::GetStreamingTextureInfo() [c:\users\altrue\documents\unreal projects\unrealengine\engine\source\runtime\engine\private\components\primitivecomponent.cpp:253]
LogWindows:Error: GameServer.exe!UEngine::HandleListTexturesCommand() [c:\users\altrue\documents\unreal projects\unrealengine\engine\source\runtime\engine\private\unrealengine.cpp:3761]

memreport -all, on the other hand, does not crash the server and produces the expected result. memreport -full does produces a report, but it is clearly partial, as it ends with:

              ../../../Game/Saved/Config/WindowsServer/DeviceProfiles.ini            56800            76924
                      ../../../Game/Saved/Config/WindowsServer/Compat.ini            46630            55162
                       ../../../Game/Saved/C

This is not a mistake, the memreport -full report actually ends with this letter C.

Hey Altrue,

Sorry for the delay. I have a question regarding the repro, however, as this isn’t something that I’ve done enough to be super familiar with.

I’ve got my server build and able to run. With the server running, how exactly are you going about running the memreport using UFE? Could you provide a set of steps I can follow from the point of running the server through the executable?

Thanks

Hello,

I’m marking this topic as resolved for tracking purposes, as we have not heard from you in a few days. If this issue persists, feel free to respond to this thread. For any new issues, please create a new Answerhub topic.

Have a great day

Hi Sean, the issue is still not resolved, please don’t mark it as such!

My apologies for missing your previous message, I’m going to answer it in a few minutes :slight_smile:

Sure!

Step 1: Have a dedicated server packaged and ready to go.

Step 2: Create a shortcut to the server executable in the binaries folder, for instance: somethingsomething\WindowsServer\NameOfGame\Binaries\Win64\NameOfGameServer.exe

Step 3: Right click on the shortcut in your file explorer in windows and select “Properties”. In the path of the shortcut, after the path and the quotes, add -messaging. I’d also advise adding -log to have a way to visually see the server other than the windows process manager.

Step 4: Open your Unreal Engine editor (there may be a standalone buried in the Unreal Engine folders if you’d rather not open the editor but still access the tool)

Step 5: Assuming you are using the Unreal Engine, load up your project (I don’t think that the loaded project matters but you have to have some project loaded to access the Unreal Engine Editor UI.

Step 6: Go to “Window” → “Developers Tools” → Session FrontEnd

Step 7: If your dedicated server is running on the same machine, you should see on the top left a mention of “My Sessions” with a number between parentheses, probably “(1)” if this is the first server you have running since you opened the session frontend.

Step 8: Upon clicking “My Sessions”, you should see one or multiple lines (representing sessions) appear, according to the number in parentheses after “My Sessions”. Usually these sessions are named “Unnamed” due to the server not sharing its name with the session frontend. That doesn’t matter. Click on the session. This makes another line appear which displays your computer name, type of sessions (in our case, “server”), and a neat little “device” icon with again your computer name. On the right of this left column, you can see a small green circle indicating that the session is still running. If the circle is grey, then you haven’t selected the right session (assuming there were multiple sessions listed)

(Next steps in my answer to this comment)

Step 9: Left click on the session line that displays a green circle (indicating that the server is still running). This should print something in both the “Console” part of the session frontend AND the console of the dedicated server assuming you ran it with the flag -log. If that is the case, your session frontend is now hooked with the dedicated server and ready to receive commands.

Step 10: Now, at the bottom center of the session frontend window, assuming you stayed in the “Console” tab, you should see a text field. Enter “memreport -all” and press enter. This should work and save some file at some location.

Step 11: Now, enter “memreport -full” and press Enter. This makes my server crash.

Great, thanks a lot for the steps. I’ve just tested this, and it seems that I’m not getting a crash on my end in a clean project.

Here’s what I’m seeing in my log:

LogEngineService: sean.flint executed the remote command: memreport -full
LogEngine: MemReportDeferred: saving to [filepath]

Are you getting this in a clean project as well? Could there be something I’m overlooking?

I’m not getting this with a clean project either, but I figured since my dedicated server is otherwise working fine, and since it crashes while, judging from the log, trying to get the materials from the particle system in the context of texture streaming, that it might be related to those things somehow and that you might want to know about it :slight_smile:

If this is not related to the unreal engine code, but rather caused by my project code them I apologize for the lost time. However, the very fact that the command is trying to access particle material info on a dedicated server, and the fact that the repport is ending so abruptly “mid sentence”, lead me to believe that this looks like a rather suspicious behaviour from the command memreport :slight_smile:

But unfortunately, I don’t have any other conclusive information for you :frowning:

Hey Altrue,

Unfortunately, without a way to reproduce the issue on our end, we are unable to take any further action on this issue at this time. However, if you are able to come up with additional information regarding a repro, you are more than welcome to leave a comment to reopen the thread, and I’ll be glad to continue investigating.

Have a great day