Roemer/ut99-server

Enabling UT_DOUPLINK causes the server to crash on startup.

Closed this issue · 5 comments

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

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.

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?

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

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

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