Author Topic: Help in debugging tremulous on opensolaris  (Read 12170 times)

scloh

  • Posts: 7
  • Turrets: +0/-1
Help in debugging tremulous on opensolaris
« on: September 12, 2008, 03:24:29 am »
Hi all,

I got tremulous compiled and then i copied the tremulous.x86 file to a new directory. Created a base directory in that directory and copied a bunch of map files in the base directory. Then I tried to run tremulous.

tremulous first showed up in a small window, played the startup sound and then disappeared as well as making the shell session disappear.

The last lines from stderror are:

--- Common Initialization Complete ---
Opening IP socket: localhost:30720
Hostname: bradosfs2
IP: 192.168.9.5
Started tty console (use +set ttycon 0 to disable)
----- CL_Shutdown -----
Closing SDL audio device...
SDL audio device shut down.
RE_Shutdown( 1 )
-----------------------
Shutdown tty console


There were no error messages reported. Where do we start?

kevlarman

  • Posts: 2737
  • Turrets: +291/-295
Re: Help in debugging tremulous on opensolaris
« Reply #1 on: September 12, 2008, 04:52:12 am »
did you copy the 1.1 data into that directory?
Quote from: Asvarox link=topic=8622.msg169333#msg169333
Ok let's plan it out. Asva, you are nub, go sit on rets, I will build, you two go feed like hell, you go pwn their asses, and everyone else camp in the hallway, roger?
the dretch bites.
-----
|..d| #
|.@.-##
-----

scloh

  • Posts: 7
  • Turrets: +0/-1
Re: Help in debugging tremulous on opensolaris
« Reply #2 on: September 12, 2008, 06:22:14 am »
did you copy the 1.1 data into that directory?

----- FS_Startup -----
Current search path:
/export/home/icttech/.tremulous/base
./base/vms-1.1.0.pk3 (4 files)
./base/ui-sunos-x86.pk3 (13 files)
./base/map-uncreation-1.1.0.pk3 (110 files)
./base/map-tremor-1.1.0.pk3 (45 files)
./base/map-transit-1.1.0.pk3 (135 files)
./base/map-niveus-1.1.0.pk3 (134 files)
./base/map-nexus6-1.1.0.pk3 (151 files)
./base/map-karith-1.1.0.pk3 (118 files)
./base/map-atcs-1.1.0.pk3 (87 files)
./base/map-arachnid2-1.1.0.pk3 (67 files)
./base/data-1.1.0.pk3 (1229 files)
./base

Do I need anything else?

kevlarman

  • Posts: 2737
  • Turrets: +291/-295
Re: Help in debugging tremulous on opensolaris
« Reply #3 on: September 12, 2008, 05:13:14 pm »
no that looks fine, could you add +set developer 1 to the client's command line?
Quote from: Asvarox link=topic=8622.msg169333#msg169333
Ok let's plan it out. Asva, you are nub, go sit on rets, I will build, you two go feed like hell, you go pwn their asses, and everyone else camp in the hallway, roger?
the dretch bites.
-----
|..d| #
|.@.-##
-----

scloh

  • Posts: 7
  • Turrets: +0/-1
Re: Help in debugging tremulous on opensolaris
« Reply #4 on: September 16, 2008, 01:39:58 am »
no that looks fine, could you add +set developer 1 to the client's command line?

Sorry for the late reply, long weekend over here in HK. Here are some extra lines that seem to be of interest from stderr.

----- Client Initialization Complete -----
----- R_Init -----
Warning: cvar "r_uifullscreen" given initial values: "1" and "0"
...
----- finished R_Init -----
Can't find gfx/colors/black.tga
...
Can't find vm/ui.map
Couldn't load symbol file: vm/ui.map
ui loaded in 4596672 bytes on the hunk
^3WARNING: sound/misc/menu2.wav is not a 22kHz wav file
Can't find models/splash/splash_screen_2.md3
Can't find models/splash/splash_screen_1.md3
Can't find models/splash/bright_star.tga
Can't find models/splash/bright_star_2.tga
Can't find models/splash/nebula.tga
Can't find models/splash/nebula_2.tga
Can't find ui/credit.menu
Can't find gfx/2d/load_screen.tga
Can't find ui/addfilter.menu
UI menu load time = 410 milli seconds
UI menu load time = 28 milli seconds
UI menu load time = 26 milli seconds
Channel memory manager started
Can't find games/(null)_0.game
Can't find demos/(null)_0.dm_69
...
Channel memory manager started
SCR_PlayCinematic( splash.RoQ )
trFMV::play(), playing splash.RoQ
roq_size>65536||roq_id==0x1084
finished cinematic
Channel memory manager started
S_StartBackgroundTrack( sound/ui/heartbeat.wav, sound/ui/heartbeat.wav )
----- CL_Shutdown -----
...
RE_Shutdown( 1 )


thanks,

scloh.

Bissig

  • Posts: 1309
  • Turrets: +103/-131
Re: Help in debugging tremulous on opensolaris
« Reply #5 on: September 16, 2008, 05:17:29 am »
Additionally you could do an "strace" and post the last lines (the last 100 maybe).

Amanieu

  • Posts: 647
  • Turrets: +135/-83
    • Amanieu
Re: Help in debugging tremulous on opensolaris
« Reply #6 on: September 16, 2008, 06:46:13 am »
Try +set ttycon 0
Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P

scloh

  • Posts: 7
  • Turrets: +0/-1
Re: Help in debugging tremulous on opensolaris
« Reply #7 on: September 17, 2008, 05:37:10 am »
Additionally you could do an "strace" and post the last lines (the last 100 maybe).

Last 100 lines:

/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
Channel memory manager started
/1:   write(2, " C h a n n e l   m e m o".., 31)   = 31
S_StartBackgroundTrack( sound/ui/heartbeat.wav, sound/ui/heartbeat.wav )
/1:   write(2, " S _ S t a r t B a c k g".., 73)   = 73
/1:   open("/export/home/icttech/.tremulous/base/sound/ui/heartbeat.wav", O_RDONLY) Err#2 ENOENT
/1:   open("./base/data-1.1.0.pk3", O_RDONLY)      = 23
/1:   lseek(3, 0x02AD3DBF, SEEK_SET)         = 0x02AD3DBF
/1:   read(3, " P K0102170314\002\0\b\0".., 131072)   = 17897
/1:   lseek(23, 0x025500FE, SEEK_SET)         = 0x025500FE
/1:   fstat64(23, 0x08044B60)            = 0
/1:   fstat64(23, 0x08044A90)            = 0
/1:   ioctl(23, TCGETA, 0x08044B2C)         Err#25 ENOTTY
/1:   read(23, " P K030414\002\0\b\0C680".., 131072)   = 131072
/1:   lseek(23, 0x02550147, SEEK_SET)         = 0x02550147
/1:   read(23, "1C ]05 t13CFD7 MB2 q wAF".., 131072)   = 131072
/1:       Incurred fault #6, FLTBOUNDS  %pc = 0x08168D94
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94
/1:       Received signal #11, SIGSEGV [caught]
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94
/1:   lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
/1:   ioctl(1, TCGETA, 0x0804458C)         = 0
/1:   fstat64(1, 0x080444F0)            = 0
/1:   write(1, " R e c e i v e d   s i g".., 31)   = 31
----- CL_Shutdown -----
/1:   write(2, " - - - - -   C L _ S h u".., 24)   = 24
Channel memory manager started
/1:   write(2, " C h a n n e l   m e m o".., 31)   = 31
Closing SDL audio device...
/1:   write(2, " C l o s i n g   S D L  ".., 28)   = 28
/2:   nanosleep(0xFD80DE88, 0xFD80DE80)      = 0
/2:   lwp_sigmask(SIG_SETMASK, 0xFFBFFEFF, 0x0000FFF7) = 0xFFBFFEFF [0x0000FFFF]
/2:   lwp_exit()
lwp_wait(2, 0x08045360)            = 0
close(21)               = 0
SDL audio device shut down.
write(2, " S D L   a u d i o   d e".., 28)   = 28
RE_Shutdown( 1 )
write(2, " R E _ S h u t d o w n (".., 17)   = 17
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
getpid()               = 14147 [14146]
write(15, " i\003\002\001\004\00101".., 96)   = 96
read(15, 0x080453B0, 32)         Err#11 EAGAIN
pollsys(0x12430648, 1, 0x00000000, 0x00000000)   = 1
read(15, "06\0 =\0 +8ED7 L :01\0\0".., 32)   = 32
read(15, "1204 @\002\0  0302\0  03".., 32)   = 32
read(15, "11\0 @\002\0  0302\0  03".., 32)   = 32
read(15, "0101 B\0\0\0\0\001\0\0\0".., 32)   = 32
getpid()               = 14147 [14146]
getpid()               = 14147 [14146]
munmap(0xFE7D8000, 407744)         = 0
close(15)               = 0
mkdir("/export", 0777)            Err#17 EEXIST
mkdir("/export/home", 0777)         Err#17 EEXIST
mkdir("/export/home/icttech", 0777)      Err#17 EEXIST
mkdir("/export/home/icttech/.tremulous", 0777)   Err#17 EEXIST
writing to: /export/home/icttech/.tremulous/servercache.dat
write(2, " w r i t i n g   t o :  ".., 60)   = 60
open("/export/home/icttech/.tremulous/servercache.dat", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 15
fstat64(15, 0x08043CD0)            = 0
fstat64(15, 0x08043C00)            = 0
ioctl(15, TCGETA, 0x08043C9C)         Err#25 ENOTTY
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 119824)   = 119824
close(15)               = 0
-----------------------
write(2, " - - - - - - - - - - - -".., 24)   = 24
_exit(0)

Bissig

  • Posts: 1309
  • Turrets: +103/-131
Re: Help in debugging tremulous on opensolaris
« Reply #8 on: September 17, 2008, 08:47:25 pm »
I have two guesses:

1. failing SDL sound support
2. file permissions

Did you try Amanieus tip?

scloh

  • Posts: 7
  • Turrets: +0/-1
Re: Help in debugging tremulous on opensolaris
« Reply #9 on: September 18, 2008, 01:17:44 am »
I have two guesses:

1. failing SDL sound support
2. file permissions

Did you try Amanieus tip?

1. I don't think so...I do hear that initial weee sound when I see the splash screen.
2. Hmm...what is all this stuff? open("/export/home/icttech/.tremulous/base/scripts/reactor.shader", O_RDONLY) Err#2 ENOENT

I see a whole bunch of attempts to read stuff from .tremulous/base but I only have a autogen.cfg file in there.

As for the Amanieus tip, that only saves me from having to background tremulous to prevent it from locking the X terminal. I have had to kill X with Ctrl-Alt-Backspace if I did not put tremulous into the background in the shell. Now I do not have to background it.

Bissig

  • Posts: 1309
  • Turrets: +103/-131
Re: Help in debugging tremulous on opensolaris
« Reply #10 on: September 18, 2008, 01:22:20 am »
It seems to fail while writing the servercache.dat

I don't have any clue what's happening there.

Or it's the trouble with these lines:

Quote
/1:   read(23, "1C ]05 t13CFD7 MB2 q wAF".., 131072)   = 131072
/1:       Incurred fault #6, FLTBOUNDS  %pc = 0x08168D94
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94
/1:       Received signal #11, SIGSEGV [caught]
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94

I don't know enough about signals to interprete all that stuff.

What are the file permissions on your tremulous executable?
« Last Edit: September 18, 2008, 01:24:14 am by Bissig »

Amanieu

  • Posts: 647
  • Turrets: +135/-83
    • Amanieu
Re: Help in debugging tremulous on opensolaris
« Reply #11 on: September 18, 2008, 03:46:26 am »
That means the program is trying to access memory that doesn't exist.
Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P

Rocinante

  • Posts: 642
  • Turrets: +252/-668
    • My Homepage
Re: Help in debugging tremulous on opensolaris
« Reply #12 on: September 18, 2008, 06:12:22 am »
2. Hmm...what is all this stuff? open("/export/home/icttech/.tremulous/base/scripts/reactor.shader", O_RDONLY) Err#2 ENOENT

Attempting to open a file for reading which doesn't exist - but the segfault is the problem, not this.

Bissig mentions the servercache, but the segfault is before that; right after reading some data from file descriptor 23, which you can see by an earlier open is data-1.1.0.pk3 (the " = 23" in the open call means the file was opened successfully, and made available as file descriptor 23).  So something while it's reading in data-1.1.0.pk3 caused a segfault.  I'm afraid that without attaching a debugger and watching things intently, I can't glean more from the trace output, but then I'm the type that prefers stepping through the code in DDD instead of trying to debug by strace output dumps :>
}MG{Mercenaries Guild
"On my ship, the Rocinante, wheeling through the galaxies, headed for the heart of Cygnus, headlong into mystery." -- Rush, "Cygnus X-1"

Bissig

  • Posts: 1309
  • Turrets: +103/-131
Re: Help in debugging tremulous on opensolaris
« Reply #13 on: September 19, 2008, 12:58:18 am »
Idea:

Might you by any chance run out of usable RAM?

scloh

  • Posts: 7
  • Turrets: +0/-1
Re: Help in debugging tremulous on opensolaris
« Reply #14 on: September 23, 2008, 02:29:16 am »
Idea:

Might you by any chance run out of usable RAM?

4GB?  ::)

scloh

  • Posts: 7
  • Turrets: +0/-1
Re: Help in debugging tremulous on opensolaris
« Reply #15 on: September 23, 2008, 02:31:18 am »
2. Hmm...what is all this stuff? open("/export/home/icttech/.tremulous/base/scripts/reactor.shader", O_RDONLY) Err#2 ENOENT

Attempting to open a file for reading which doesn't exist - but the segfault is the problem, not this.

Bissig mentions the servercache, but the segfault is before that; right after reading some data from file descriptor 23, which you can see by an earlier open is data-1.1.0.pk3 (the " = 23" in the open call means the file was opened successfully, and made available as file descriptor 23).  So something while it's reading in data-1.1.0.pk3 caused a segfault.  I'm afraid that without attaching a debugger and watching things intently, I can't glean more from the trace output, but then I'm the type that prefers stepping through the code in DDD instead of trying to debug by strace output dumps :>

Hmm...I wonder if this is one of those gcc abi vs suncc abi things...I could not compile tremulous with suncc.

Amanieu

  • Posts: 647
  • Turrets: +135/-83
    • Amanieu
Re: Help in debugging tremulous on opensolaris
« Reply #16 on: September 23, 2008, 02:36:15 am »
Run it in gdb and see where it crashes. Then grab a backtrace and a dump of all local vars.
Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P