Roemer / ut99-server

A dockerfile for a fully functional and easy configurable Unreal Tournament 99 server.
MIT License
87 stars 28 forks source link

Enabling UT_DOUPLINK causes the server to crash on startup. #5

Closed RIKIKU closed 2 years ago

RIKIKU commented 4 years ago

If UT_DOUPLINK is set to true, the server throws the following error. This also happens if "Advertise Server" is ticked in the web admin page.

Signal: SIGSEGV [segmentation fault]
Aborting.
Exiting.
Name subsystem shut down
Allocation checking disabled
/startup.sh: line 7:     7 Segmentation fault      (core dumped) /ut-server/ucc server $UT_SERVERURL ini=UnrealTournament.ini log=ut.log -nohomedir -lanplay
RIKIKU commented 4 years ago

Note that #3 addresses this issue. I have built this PR and tested it and the error does go away, however, I am not sure why this line causes the problem and I'm not sure that removing it is the best way to fix the problem.

RIKIKU commented 4 years ago

I have done some testing on this and it seems that if the UnrealTournament.ini file has a master server in it, where the DNS record still resolves, but the server isn't listening, or there's something wrong with the master server, the above error message occurs.

This is a master server list that I have tested that works at this point in time:

    'IpServer.UdpServerUplink MasterServerAddress=utmaster.epicgames.com MasterServerPort=27900'
    'IpServer.UdpServerUplink MasterServerAddress=master.333networks.com MasterServerPort=27900'
    'IpServer.UdpServerUplink MasterServerAddress=master.errorist.tk MasterServerPort=27900'
    'IpServer.UdpServerUplink MasterServerAddress=master.newbiesplayground.net MasterServerPort=27900'

Note: These only worked once I removed the following default master server entries from the UnrealTournament.ini file:

ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.mplayer.com MasterServerPort=27900

Another thing I found is that if you try to add more than two of these valid addresses via the set_config_value method in the prepare.py file and build the server, the above error occurs, regardless of if all of the addresses are correct or not. Perhaps there's a limit on the number of master servers you can have or something unexpected is happening with that method?

RIKIKU commented 4 years ago

Found what seems to be the source code for IpServer.UdpUplink. This will be very helpful for troubleshooting. https://www.etc.cmu.edu/projects/coyote210/Docs/undox/IpServer.UdpServerUplink.html#L22

Philap95 commented 3 years ago

At first i ran in the same issue like #5 and after editing it was working properly, but from one day to other the server wasn´t advertised.

I think the most of us using the ut99/ut-goty version from Steam as client. I compared the "UnrealTournament.ini" files from the server and the steam version and found some differences.

The Steam version uses the following master servers:

[Engine.GameEngine] ... ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900 ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.mplayer.com MasterServerPort=27900 Gamespy server removed ...

and here are the servers under [UBrowserAll] that Steam uses for the browser (i think this section is not relevant for server or uplink):

[UBrowserAll] ... ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=utmaster.epicgames.com,MasterServerTCPPort=28900,Region=0,GameName=ut ListFactories[1]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master.333networks.com,MasterServerTCPPort=28900,Region=0,GameName=ut ...

My solution for the issues with advertising my server in the master browser was additionally forward port 7779.

UdpServerQuery(crt): Port 7778 successfully bound. Resolving unreal.epicgames.com... Resolving master.mplayer.com... >>CustomCrossHairScale started Unknown Mutator in use: CCHS4.CCHS Initiating local logging... Initiating world logging... Game engine initialized UDP recvfrom error: 11 from 0.0.0.0:0 Resolved unreal.epicgames.com (199.255.40.174) UdpServerUplink: Master Server is unreal.epicgames.com:27900 UdpServerUplink: Port 7779 successfully bound. Resolved master.mplayer.com (165.160.15.20) UdpServerUplink: Master Server is master.mplayer.com:27900 UdpServerUplink: Port 7779 successfully bound. BDBMapVote: Maps Reloaded. Total Maps = 83

Maybe this help and thanks @RIKIKU and @Roemer

RIKIKU commented 2 years ago

I'm no longer seeing this issue. I suspect it was resolved when patch 469b was included in the image in commit b62e8bdc6f575a65bfafd1b2858926d7f1fa2bce