Quake3 dedicated server fails non-deterministically in Linux emulation

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Quake3 dedicated server fails non-deterministically in Linux emulation

Robert Urban
Hi Misc-folks,

The quake3 dedicated server (q3ded) fails occasionally on OpenBSD 3.9.  It
relies on Linux emulation, and I am using redhat_base-8.0p8 for this. I'm
using "linuxq3apoint-1.32b.x86.run".

I'm getting "Received signal 11, exiting...", which seems to be a recurring
thread for quake3.

This same executable runs fine, however, on redhat8 and on fedora core 4.

When it fails, it looks like this:

===========================================================================
== start game output for failure
===========================================================================

% bin/x86/q3ded +set dedicated 2 +set com_hunkMegs "16" +set net_IP 10.1.1.26
+exec ffa2.cfg
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/quake/.q3a/baseq3
/data/home/quake/q/baseq3/pak8.pk3 (9 files)
[...]
/data/home/quake/q/baseq3
bin/x86/q3ded/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
execing q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok
--- Common Initialization Complete ---
Opening IP socket: 10.1.1.26:27960
Hostname: dna.y42.org
Alias: dna
IP: 10.1.1.26
Started tty console (use +set ttycon 0 to disable)
^3PunkBuster Server: PunkBuster Server (v0.993 | A0 C0.0) **DISABLED**
execing ffa2.cfg
g_gametype will be changed upon restarting.
------ Server Initialization ------
Server: q3dm15
Hunk_Clear: reset the hunk ok
----- FS_Startup -----
Current search path:
/home/quake/.q3a/baseq3
/data/home/quake/q/baseq3/pak8.pk3 (9 files)
/data/home/quake/q/baseq3/pak7.pk3 (4 files)
/data/home/quake/q/baseq3/pak6.pk3 (64 files)
/data/home/quake/q/baseq3/pak5.pk3 (7 files)
/data/home/quake/q/baseq3/pak4.pk3 (272 files)
/data/home/quake/q/baseq3/pak3.pk3 (4 files)
/data/home/quake/q/baseq3/pak2.pk3 (148 files)
/data/home/quake/q/baseq3/pak1.pk3 (26 files)
/data/home/quake/q/baseq3/pak0.pk3 (3539 files)
/data/home/quake/q/baseq3
bin/x86/q3ded/baseq3

----------------------
8146 files in pk3 files
Loading vm file vm/qagame.qvm.
VM file qagame compiled to 1137840 bytes of code
qagame loaded in 3821696 bytes on the hunk
Received signal 11, exiting...
Shutdown tty console

===========================================================================
== end output for failure
===========================================================================

when it does not fail, it looks like this:

===========================================================================
== start game output for success
===========================================================================
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/quake/.q3a/baseq3
/data/home/quake/q/baseq3/pak8.pk3 (9 files)
/data/home/quake/q/baseq3/pak7.pk3 (4 files)
/data/home/quake/q/baseq3/pak6.pk3 (64 files)
/data/home/quake/q/baseq3/pak5.pk3 (7 files)
/data/home/quake/q/baseq3/pak4.pk3 (272 files)
/data/home/quake/q/baseq3/pak3.pk3 (4 files)
/data/home/quake/q/baseq3/pak2.pk3 (148 files)
/data/home/quake/q/baseq3/pak1.pk3 (26 files)
/data/home/quake/q/baseq3/pak0.pk3 (3539 files)
/data/home/quake/q/baseq3
bin/x86/q3ded/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
execing q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok
--- Common Initialization Complete ---
Opening IP socket: 10.1.1.26:27960
Hostname: dna.y42.org
Alias: dna
IP: 10.1.1.26
Started tty console (use +set ttycon 0 to disable)
^3PunkBuster Server: PunkBuster Server (v0.993 | A0 C0.0) **DISABLED**
execing ffa2.cfg
g_gametype will be changed upon restarting.
------ Server Initialization ------
Server: q3dm15
Hunk_Clear: reset the hunk ok
----- FS_Startup -----
Current search path:
/home/quake/.q3a/baseq3
/data/home/quake/q/baseq3/pak8.pk3 (9 files)
/data/home/quake/q/baseq3/pak7.pk3 (4 files)
/data/home/quake/q/baseq3/pak6.pk3 (64 files)
/data/home/quake/q/baseq3/pak5.pk3 (7 files)
/data/home/quake/q/baseq3/pak4.pk3 (272 files)
/data/home/quake/q/baseq3/pak3.pk3 (4 files)
/data/home/quake/q/baseq3/pak2.pk3 (148 files)
/data/home/quake/q/baseq3/pak1.pk3 (26 files)
/data/home/quake/q/baseq3/pak0.pk3 (3539 files)
/data/home/quake/q/baseq3
bin/x86/q3ded/baseq3

----------------------
8146 files in pk3 files
Loading vm file vm/qagame.qvm.
VM file qagame compiled to 1137840 bytes of code
qagame loaded in 3821696 bytes on the hunk
------- Game Initialization -------
gamename: baseq3
gamedate: Sep 30 2002
------------------------------------------------------------
InitGame: \capturelimit\10\g_maxGameClients\0\sv_maxclients\6\timelimit\15\frag
l
imit\50\dmflags\0\sv_maxRate\10000\sv_hostname\Q3A FFA Server - frag chatters,
[...]

===========================================================================
== end output for success
===========================================================================

Does anyone have any ideas?

Rob Urban

below are ktrace excerpts for success and failure.

====================
= ktrace on failure
====================

[-snip-]
  5881 q3ded    RET   read 16384/0x4000
  5881 q3ded    CALL  write(0x2,0xcfbceaa0,0x1f)
  5881 q3ded    GIO   fd 2 wrote 31 bytes
       "Loading vm file vm/qagame.qvm.
       "
  5881 q3ded    RET   write 31/0x1f
  5881 q3ded    CALL  open(0x81ba1df,0,0x1b6)
  5881 q3ded    NAMI  "/emul/linux/home/quake/.q3a/baseq3/vm/qagame.qvm"
  5881 q3ded    NAMI  "/home/quake/.q3a/baseq3/vm/qagame.qvm"
  5881 q3ded    RET   open -1 errno 2 No such file or directory
  5881 q3ded    CALL  llseek(0xb,0,0x6ef4e,0xcfbce710,0)
  5881 q3ded    RET   llseek 0
  5881 q3ded    CALL  llseek(0xb,0,0x4c000,0xcfbce790,0)
  5881 q3ded    RET   llseek 0
  5881 q3ded    CALL  read(0xb,0x50841000,0x4000)
  5881 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
  5881 q3ded    GIO   fd 11 read 32 bytes
  5881 q3ded    RET   read 16384/0x4000
  5881 q3ded    CALL  llseek(0xb,0,0x50000,0xcfbcf860,0)
  5881 q3ded    RET   llseek 0
  5881 q3ded    CALL  read(0xb,0x55328b12,0xc000)
  5881 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
  5881 q3ded    GIO   fd 11 read 4088 bytes
  5881 q3ded    RET   read 49152/0xc000
  5881 q3ded    CALL  read(0xb,0x50841000,0x4000)
  5881 q3ded    GIO   fd 11 read 4088 bytes
  5881 q3ded    GIO   fd 11 read 32 bytes
  5881 q3ded    RET   read 16384/0x4000
  5881 q3ded    CALL  read(0xb,0x55328b12,0xc000)
  5881 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
  5881 q3ded    GIO   fd 11 read 96 bytes
  5881 q3ded    RET   read 49152/0xc000
  5881 q3ded    CALL  read(0xb,0x50841000,0x4000)
  5881 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
  5881 q3ded    GIO   fd 11 read 3934 bytes
  5881 q3ded    RET   read 12110/0x2f4e
  5881 q3ded    CALL  write(0x2,0xcfbcea50,0x31)
  5881 q3ded    GIO   fd 2 wrote 49 bytes
       "VM file qagame compiled to 1137840 bytes of code
       "
  5881 q3ded    RET   write 49/0x31
  5881 q3ded    CALL  write(0x2,0xcfbceab0,0x2b)
  5881 q3ded    GIO   fd 2 wrote 43 bytes
       "qagame loaded in 3821696 bytes on the hunk
       "
  5881 q3ded    RET   write 43/0x2b
  5881 q3ded    CALL  read(0,0xcfbcf99f,0x1)
  5881 q3ded    RET   read -1 errno 35 Resource temporarily unavailable
  5881 q3ded    CALL  socketcall(0xc,0xcfbcf9b0)
  5881 q3ded    RET   socketcall -1 errno 35 Resource temporarily unavailable
  5881 q3ded    CALL  gettimeofday(0xcfbcfa18,0)
  5881 q3ded    RET   gettimeofday 0
  5881 q3ded    PSIG  SIGSEGV caught handler=0x80897fc mask=0x0 addr=0x805708b
trapno=1
  5881 q3ded    CALL  fstat64(0x1,0xcfbce240)
  5881 q3ded    RET   fstat64 0
  5881 q3ded    CALL  ioctl(0x1,_IO('T',0x1,0),0xcfbce180)
  5881 q3ded    RET   ioctl 0
  5881 q3ded    CALL  mmap(0xcfbce220)
  5881 q3ded    RET   mmap 1231364096/0x49652000
  5881 q3ded    CALL  write(0x1,0x49652000,0x1f)
  5881 q3ded    GIO   fd 1 wrote 31 bytes
       "Received signal 11, exiting...
       "
  5881 q3ded    RET   write 31/0x1f
  5881 q3ded    CALL  write(0x2,0xcfbcd9b0,0x15)
  5881 q3ded    GIO   fd 2 wrote 21 bytes
       "Shutdown tty console
       "
  5881 q3ded    RET   write 21/0x15
  5881 q3ded    CALL  ioctl(0,_IO('T',0x3,0),0xcfbce960)
  5881 q3ded    RET   ioctl 0
  5881 q3ded    CALL  exit(0)

====================
= ktrace on success
====================
[-snip-]
 22376 q3ded    RET   read 16384/0x4000
 22376 q3ded    CALL  write(0x2,0xcfbcdb88,0x1f)
 22376 q3ded    GIO   fd 2 wrote 31 bytes
       "Loading vm file vm/qagame.qvm.
       "
 22376 q3ded    RET   write 31/0x1f
 22376 q3ded    CALL  open(0x81ba1df,0,0x1b6)
 22376 q3ded    NAMI  "/emul/linux/home/quake/.q3a/baseq3/vm/qagame.qvm"
 22376 q3ded    NAMI  "/home/quake/.q3a/baseq3/vm/qagame.qvm"
 22376 q3ded    RET   open -1 errno 2 No such file or directory
 22376 q3ded    CALL  llseek(0xb,0,0x6ef4e,0xcfbcd7f8,0)
 22376 q3ded    RET   llseek 0
 22376 q3ded    CALL  llseek(0xb,0,0x4c000,0xcfbcd878,0)
 22376 q3ded    RET   llseek 0
 22376 q3ded    CALL  read(0xb,0x51f74000,0x4000)
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 32 bytes
 22376 q3ded    RET   read 16384/0x4000
 22376 q3ded    CALL  llseek(0xb,0,0x50000,0xcfbce948,0)
 22376 q3ded    RET   llseek 0
 22376 q3ded    CALL  read(0xb,0x50064b12,0xc000)
 22376 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 96 bytes
 22376 q3ded    RET   read 49152/0xc000
 22376 q3ded    CALL  read(0xb,0x51f74000,0x4000)
 22376 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 32 bytes
 22376 q3ded    RET   read 16384/0x4000
 22376 q3ded    CALL  read(0xb,0x50064b12,0xc000)
 22376 q3ded    GIO   fd 11 read 4088 bytes
[many like this]
 22376 q3ded    RET   read 49152/0xc000
 22376 q3ded    CALL  read(0xb,0x51f74000,0x4000)
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 4088 bytes
 22376 q3ded    GIO   fd 11 read 3934 bytes
 22376 q3ded    RET   read 12110/0x2f4e
 22376 q3ded    CALL  write(0x2,0xcfbcdb38,0x31)
 22376 q3ded    GIO   fd 2 wrote 49 bytes
       "VM file qagame compiled to 1137840 bytes of code
       "
 22376 q3ded    RET   write 49/0x31
 22376 q3ded    CALL  write(0x2,0xcfbcdb98,0x2b)
 22376 q3ded    GIO   fd 2 wrote 43 bytes
       "qagame loaded in 3821696 bytes on the hunk
       "
 22376 q3ded    RET   write 43/0x2b
 22376 q3ded    CALL  read(0,0xcfbcea87,0x1)
 22376 q3ded    RET   read -1 errno 35 Resource temporarily unavailable
 22376 q3ded    CALL  socketcall(0xc,0xcfbcea98)
 22376 q3ded    RET   socketcall -1 errno 35 Resource temporarily unavailable
 22376 q3ded    CALL  gettimeofday(0xcfbceb00,0)
 22376 q3ded    RET   gettimeofday 0
 22376 q3ded    CALL  write(0x2,0xcfbcca74,0x24)
 22376 q3ded    GIO   fd 2 wrote 36 bytes
       "------- Game Initialization -------
       "
 22376 q3ded    RET   write 36/0x24
 22376 q3ded    CALL  write(0x2,0xcfbcca74,0x11)
 22376 q3ded    GIO   fd 2 wrote 17 bytes
       "gamename: baseq3
       "
 22376 q3ded    RET   write 17/0x11
 22376 q3ded    CALL  write(0x2,0xcfbcca74,0x16)
 22376 q3ded    GIO   fd 2 wrote 22 bytes
       "gamedate: Sep 30 2002
       "
 22376 q3ded    RET   write 22/0x16
 22376 q3ded    CALL  mkdir(0x81b91e0,0x1ff)
 22376 q3ded    NAMI  "/emul/linux"
 22376 q3ded    NAMI  "/emul/linux/home"
 22376 q3ded    RET   mkdir -1 errno 13 Permission denied
 22376 q3ded    CALL  mkdir(0x81b91e0,0x1ff)
 22376 q3ded    NAMI  "/emul/linux/home"
 22376 q3ded    NAMI  "/home/quake"
 22376 q3ded    RET   mkdir -1 errno 17 File exists
[and much more]

[THE END]