Bug 105 - Multihome Command Line Option Fails To Bind IP/Port
Status: RESOLVED FIXED
Alias: None
Product: Unreal Tournament 2003
Classification: Unclassified
Component: Dedicated Server
Version: Separate dedicated server package (Build 2199)
Hardware: PC FreeBSD
: P2 major
Assignee: Ryan C. Gordon
QA Contact:
URL:
: 139
Depends on:
Blocks:
 
Reported: 2002-09-17 08:29 EDT by Justin Head
Modified: 2003-04-25 22:32:18 EDT
1 user (show)

See Also:


Attachments
Bind Errors (5.00 KB, application/x-zip-compressed)
2002-09-19 05:33 EDT, Justin Head
ut2003demo Server.ini (12.20 KB, text/plain)
2002-09-27 16:00 EDT, Marius
ut2003demo luser.in (7.86 KB, text/plain)
2002-09-27 16:02 EDT, Marius

Description Justin Head 2002-09-17 08:29:24 EDT
No matter what i try i can not get the Multihome working.  From what i have 
read all your are suppose to do is add the -multhome xxx.xxx.xxx.xxx to your 
command line.  I have no issues with halflife or quake based servers and 
binding to a specific ip address on this box.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
uname output
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
FreeBSD sogamed.gamedaemons.net 4.6.2-RELEASE-p1 FreeBSD 4.6.2-RELEASE-p1 #7: 
Sun Sep 15 21:41:27 CDT 2002     root@sogamed.com:/usr/obj/usr/src/sys/GAME-
RAID  i386

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ifconfig
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=3<rxcsum,txcsum>
        inet 66.151.14.9 netmask 0xffffff00 broadcast 66.151.14.255
        inet6 fe80::2e0:81ff:fe03:7c7e%xl0 prefixlen 64 scopeid 0x1 
        inet 66.151.14.60 netmask 0xffffffff broadcast 66.151.14.60
        ether 00:e0:81:03:7c:7e
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
command line
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

./ucc server CTF-Citadel?XGame.xCTFGame?AdminName=admin?AdminPassword=daemon -
server -ini=server-ctf2.ini -log=server-ctf2.log -multihome=66.151.14.9 -
nohomedir

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
error
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Executing Class Engine.ServerCommandlet
Unreal engine initialized
(Karma): Beginning Karma for game.
(Karma): Creating MeAssetDB.
(Karma): Loading: jugg.ka
(Karma): Finished Creating MeAssetDB (2 Assets).
Browse: CTF-Citadel?Name=Player?Class=Engine.Pawn?Character=Gorge?team=255?
XGame.xCTFGame?AdminName=admin?AdminPassword=daemon
LoadMap: CTF-Citadel?Name=Player?Class=Engine.Pawn?Character=Gorge?team=255?
XGame.xCTFGame?AdminName=admin?AdminPassword=daemon
Bound to IpDrv.so
Missing Texture Texture PlayerSkins.JuggFemaleABodyA
Bound to Fire.so
Missing Class Class Editor.TransBuffer
Bound to XGame.so
Missing Texture Texture PlayerSkins.JuggFemaleABodyA
Missing Texture Texture PlayerSkins.JuggFemaleAHeadA
Missing Texture Texture PlayerSkins.JuggFemaleBBodyA
Missing Texture Texture PlayerSkins.JuggFemaleBHeadA
(Karma): Initialising Karma for Level.
Static mesh batches: 4118544 vertex bytes, 471618 index bytes
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor202
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor211
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor59
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor28
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor8
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor203
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor209
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor209
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor207
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor207
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor58
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor58
(Karma:) Could not create Convex geometry for Actor: StaticMeshActor214
Collecting garbage
Purging garbage
Garbage: objects: 20090->20085; refs: 247754
Game class is 'xCTFGame'
setsockopt with IP_RECVERR failed
Sockets: Socket queue 131072 / 131072
TcpNetDriver on port 7777
Server Package: Core
Server Package: Engine
Server Package: Fire
Server Package: Editor
Server Package: IpDrv
   (server-side only)
Server Package: UWeb
Bound to UWeb.so
   (server-side only)
Server Package: GamePlay
Server Package: UnrealGame
Server Package: XEffects
Server Package: XPickups
Server Package: XGame
Server Package: XWeapons
Server Package: XInterface
Bound to XInterface.so
Server Package: Vehicles
Server Package: TeamSymbols_UT2003
Spawning: IpDrv.MasterServerUplink
Spawning: UWeb.WebServer
Level is Level CTF-Citadel.myLevel
Paths may not be valid.
Bringing Level CTF-Citadel.myLevel up for play (30) appSeconds: 
16896287.581514...
InitGame: ?Name=Player?Class=Engine.Pawn?Character=Gorge?team=255?
XGame.xCTFGame?AdminName=admin?AdminPassword=daemon
SetAdminFromURL called
Base Mutator is CTF-Citadel.DMMutator
GameInfo::InitGame : bEnableStatLogging False
TeamGame::InitGame : bBalanceTeams True
UdpGamespyQuery CTF-Citadel.UdpGamespyQuery (Function 
IpDrv.UdpGamespyQuery.PreBeginPlay:0034) BindPort: bind failed
UdpServerQuery: Port failed to bind.
Resolving master0.gamespy.com...
MasterServerUplink: MasterServerGameStats not found - stats uploading disabled.
FUdpLink::BindPort: Failed to bind UDP socket to port
Executing UObject::StaticShutdownAfterError
FUdpLink::BindPort: Failed to bind UDP socket to port

History: 

Exiting due to error
Exiting.
Waiting for file streaming thread to finish...
Name subsystem shut down
Comment 1 Ryan C. Gordon 2002-09-19 04:39:10 EDT
Try:

MULTIHOME=xxx.xxx.xxx.xxx

instead of -multihome xxx.xxx.xxx.xxx

and see if that works.

--ryan.

Comment 2 Justin Head 2002-09-19 05:33:32 EDT
Created attachment 19 [details]
Bind Errors

That seems to have changed the error to a new one.... Well, actually two new
ones.  The first is a bind error that results in a hard stop of the server. 
The second contains the bind errors yet lets the server keep running while
master server errors fill up the screen.  I am able to connect to the ip with
the second error and play but webadmin and being advertised in the master list
does not happen.

I can not reproduce any of the errors in a standard way.  They all seem to
happen randomly.  Error 2 is the most common.

I have attached the startup of all three errors in the attached zip file and
would like to extend a shell account if you need a freebsd box to work on this
issue. Just contact me via email for that.

error_1.txt = original error
error_2.txt = hard stop bind error
error_3.txt = master server error
Comment 3 Steven Hartland 2002-09-27 07:40:44 EDT
No joy here with either -multihome or MULTIHOME even on a machine with only 1 
interface. OS tested FreeBSD.
Comment 4 Marius 2002-09-27 15:34:20 EDT
> Can a linux/freebsd server admin that binds to a specific IP address
> please verify if this is a bug or a misconfiguration?
> 
>     https://bugzilla.icculus.org/show_bug.cgi?id=105
> 
> --ryan.
> 

Yes, this is misconfiguration either of UT or Operating system. My server is 
bound to X ip-numbers whit ip-aliasing. I always start my servers with 
Multihome (or equivalent) to bind the server to a specific ip-address.

So at the moment I have two ut2003 servers running one at 129.177.207.10 and 
another at 129.177.207.11 both on the same box. This last one jus to check that 
multihome really works.

small qstat check to see that it works:
129.177.207.10:7787   13/18 DM-Asbestos     16 / 0  xDeathMatch [unreal.uib.no] 
Demo
129.177.207.11:7787    0/ 8 DM-Asbestos     57 / 0  xDeathMatch [ludo2.uib.no] 

Comment 5 Justin Head 2002-09-27 15:54:30 EDT
Marius,

What OS are you running?  I have no problems with any other type of gameserver 
such as halflife, quake, rtcw with the current setup.  I dont see how it could 
be the UT config as i have tested with the default one as well.  Is there some 
changes that need to be placed in the UT config?  Mind posting your UT config 
and command line syntax?

I'm not the only person having this problem, Steven above tested and he didnt 
get it working as well.  Also, bug #139 has been submited here by someone else 
that is a duplicate of this exact bug.

- Justin
Comment 6 Marius 2002-09-27 15:57:25 EDT
I'm running GNU/Linux 

uname -a 
Linux godzilla 2.4.18-10smp #1 SMP Wed Aug 7 09:36:38 EDT 2002 i686 unknown
Comment 7 Marius 2002-09-27 16:00:26 EDT
Created attachment 20 [details]
ut2003demo Server.ini 

in both /usr/local/games.... and in ~/.ut2003
Comment 8 Marius 2002-09-27 16:02:44 EDT
Created attachment 21 [details]
ut2003demo luser.in

located in ~/.ut2003/System/
Comment 9 Marius 2002-09-27 16:08:29 EDT
err, forgot server command line:

from /usr/local/games/ut2003/System (or whereever ut2003demo lives) do

 screen -A -m -S ut-server2 nice -10 ./ucc-bin server DM-Asbestos.ut2?
Game=XGame.xDeathMatch?AdminName=mumbo?AdminPass
word=BLAHBLAH?MinPlayers=0?MaxPlayers=8?MaxSpectators=2?GoalScore=50?
TimeLimit=15?MaxLives=0?WeaponStay=False -ini=Server2.ini -log=Server2.l
og Multihome=129.177.207.11
Comment 10 Justin Head 2002-09-27 16:49:24 EDT
Just tried your configs + command line. Still same problems... If i have one 
server trying to run with a multihome setting set it will sometimes run and 
bind correctly but the screen gets filled with the below errors.

Master server requests heartbeat 2 with code 5412
SendTo: 207.135.145.2:28902 returned -1: 88
Master server requests heartbeat 2 with code 5412
SendTo: 207.135.145.2:28902 returned -1: 88

Other times it just dies with the FUdpLink::BindPort: error.

Same goes for a second server with the multihome command.  Sometimes they work 
and bind correctly and i can play on both (with the console filling up with the 
SendTo errors), other times only one will startup, sometimes neither.  Its all 
in that multihome option that is doing something funny.

Perhaps this bug is FreeBSD specific.  I see Ryan is a master at BSD network 
sockets...  Maybe an easy fix?  There are alot of FreeBSD servers out there 
that would probibly like to run more than one UT server per box. =)

- Justin
Comment 11 Ryan C. Gordon 2002-09-27 18:44:58 EDT
*** Bug 139 has been marked as a duplicate of this bug. ***
Comment 12 Justin Head 2003-02-15 05:17:19 EST
Any idea if this will ever be fixed or will i be forced to run some lowly linux 
distro?  Its still happening in the latest builds...
Comment 13 Ryan C. Gordon 2003-02-15 13:24:15 EST
Admins suggest this is working in retail version 2186 (and maybe earlier). This
bug report is for the demo, where it perhaps did NOT work, but we've got a new
demo version coming soon (literally, days away), so hopefully that will fix your
problem.

--ryan.

Comment 14 Justin Head 2003-04-09 15:15:27 EDT
This bug is still occuring at least for me.  I would love to talk to someone 
that actual got it to work without having to disable the master servers.  For a 
recap on the latest retail build 2199 the problem is that master server code is 
not binding correctly to multihomed ip addresses on FreeBSD.  I have tried both 
linux_base-7 and linux_base-6 and tried running it as root.  If you remove the 
following section from the UT2003.ini it will work but then your server will 
not advertise to any master servers. There is also a copy of the latest error 
below.  I'd be happy to extend a shell account so you can test this on FreeBSD.

[Engine.GameEngine]
ServerActors=IpDrv.MasterServerUplink

--------------------------------------

justin@dev.tx:~/ut2003_dedicated$ ./ucc server DM-Antalus multihome=69.12.8.8
Executing Class Engine.ServerCommandlet
Unreal engine initialized
(Karma): Beginning Karma for game.
(Karma): Creating MeAssetDB.
(Karma): Loading: Alien.ka
(Karma): Loading: Bot.ka
(Karma): Loading: Human.ka
(Karma): Loading: intro.ka
(Karma): Loading: jugg.ka
(Karma): Finished Creating MeAssetDB (12 Assets).
Browse: DM-Antalus?Name=Player?Class=Engine.Pawn?Character=Gorge?team=255
LoadMap: DM-Antalus?Name=Player?Class=Engine.Pawn?Character=Gorge?team=255
Bound to Fire.so
Bound to XGame.so
Missing Class Class Editor.TransBuffer
(Karma): Initialising Karma for Level.
Static mesh batches: 2745936 vertex bytes, 380904 index bytes
Collecting garbage
GC: Level DM-Antalus.myLevel is referenced by GameEngine Package.GameEngine
Referencers of GameEngine Package.GameEngine:

Shortest reachability from root to GameEngine Package.GameEngine:
   GameEngine Package.GameEngine (root)
Purging garbage
Garbage: objects: 21291->21280; refs: 256613
Game class is 'xDeathMatch'
Bound to IpDrv.so
setsockopt with IP_RECVERR failed
Sockets: Socket queue 131072 / 131072
TcpNetDriver on port 7777
Server Package: Core
Server Package: Engine
Server Package: Fire
Server Package: Editor
Server Package: IpDrv
   (server-side only)
Server Package: UWeb
Bound to UWeb.so
   (server-side only)
Server Package: GamePlay
Server Package: UnrealGame
Server Package: XEffects
Server Package: XPickups
Server Package: XGame
Server Package: XWeapons
Server Package: XInterface
Bound to XInterface.so
Server Package: Vehicles
Server Package: TeamSymbols_UT2003
Spawning: IpDrv.MasterServerUplink
Spawning: UWeb.WebServer
Level is Level DM-Antalus.myLevel
Bringing Level DM-Antalus.myLevel up for play (20) appSeconds: 
17365910.756904...
Base Mutator is DM-Antalus.DMMutator
GameInfo::InitGame : bEnableStatLogging False
UdpGamespyQuery DM-Antalus.UdpGamespyQuery (Function 
IpDrv.UdpGamespyQuery.PreBeginPlay:0034) BindPort: bind failed
UdpServerQuery: Port failed to bind.
Resolving master0.gamespy.com...
MasterServerUplink: MasterServerGameStats not found - stats uploading disabled.
Resolving ut2003master1.epicgames.com...
Webserver is not enabled.  Set bEnabled to True in Advanced Options.
xUtil::CacheLoad CachePlayers (0.029694 seconds)
14 ANTIPORTALS
Game engine initialized
Resolved master0.gamespy.com (216.177.89.34)
UdpGameSpyUplink: Master Server is master0.gamespy.com:27900
UdpGamespyUplink DM-Antalus.UdpGamespyUplink (Function 
IpDrv.UdpGamespyUplink.Resolved:00CD) BindPort: bind failed
UdpGameSpyUplink: Error binding port, aborting.
MasterServerUplink: Resolved ut2003master1.epicgames.com as 207.135.145.3.
Failed to bind connect socket
Executing UObject::StaticShutdownAfterError
Failed to bind connect socket

History: 

Exiting due to error
Exiting.
Waiting for file streaming thread to finish...
Name subsystem shut down
Comment 15 Justin Head 2003-04-25 22:32:18 EDT
So anyone else out there that is having this problem it can be fixed by 
deinstalling linux_base or linux_base-6 and installing the new linux_base-
debian.  I dont know why the normal redhat version does not work but the debian 
one works like a charm...

- Justin