• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.2 Crash

mrianuraa

Member
Joined
Dec 5, 2019
Messages
50
Reaction score
15
OP
Tbol

Tbol

Active Member
Joined
Apr 7, 2019
Messages
315
Reaction score
37
Something was changes on the onRecvFirstMessage ?
Yea OTCV8 detection if im not wrong

protcolgame.cpp

protocollogin.cpp
 

forgee

Veteran OT User
Joined
May 9, 2011
Messages
321
Solutions
16
Reaction score
270
Location
Sweden
GitHub
forgee
Signal caught: SIGINT
This does not look like a crash to me but I could be wrong. Normally an interrupt signal (SIGINT) means that you pressed Ctrl+C.

I think its random failure but it happens kinda often(have no idea how, got like 6 crash logs within 24hours) so from logical point somehow its reproducible
How do you start the server? Do you try to back out of gdb while the server is running or let your PC go to sleep with ssh/Putty open?
 
OP
Tbol

Tbol

Active Member
Joined
Apr 7, 2019
Messages
315
Reaction score
37
This does not look like a crash to me but I could be wrong. Normally an interrupt signal (SIGINT) means that you pressed Ctrl+C.


How do you start the server? Do you try to back out of gdb while the server is running or let your PC go to sleep with ssh/Putty open?
I use sudo ./start-tfs and after that i have functions that automatically restarts the server every 5:55:00AM so i think its the last option i let it go sleep with ssh/putty open

echo Starting Server....
sleep 0
screen -A -m -d -S tfs ./start.sh
 

darknelson

Member
Joined
Jun 19, 2011
Messages
193
Solutions
1
Reaction score
13
try to go to a house, and put ***************************************************************************************************** in aleta sio, then try to enter with a char on another account (left the door open) and see what happen
 
OP
Tbol

Tbol

Active Member
Joined
Apr 7, 2019
Messages
315
Reaction score
37
try to go to a house, and put ***************************************************************************************************** in aleta sio, then try to enter with a char on another account (left the door open) and see what happen
what? houses have nothing to do with it
 

Gesior.pl

Mega Noob&LOL 2012
Senator
Premium User
Joined
Sep 18, 2007
Messages
2,283
Solutions
36
Reaction score
1,636
Location
PLand
It looks like someone enter into 'screen' and press CTRL+C or type command "kill -2 here_tfs_process_id" in console.

All threads in your dumps are on some locks (nothing to do, waiting for some work). Everything looks fine.
In TFS 1.2+ there is even added 'signal handling' and sending 'SIGINT' to TFS process does not crash it. It saves server and shutdown:
 
OP
Tbol

Tbol

Active Member
Joined
Apr 7, 2019
Messages
315
Reaction score
37
It looks like someone enter into 'screen' and press CTRL+C or type command "kill -2 here_tfs_process_id" in console.

All threads in your dumps are on some locks (nothing to do, waiting for some work). Everything looks fine.
In TFS 1.2+ there is even added 'signal handling' and sending 'SIGINT' to TFS process does not crash it. It saves server and shutdown:
Impossible im the only one who have access to a terminal
 

Gesior.pl

Mega Noob&LOL 2012
Senator
Premium User
Joined
Sep 18, 2007
Messages
2,283
Solutions
36
Reaction score
1,636
Location
PLand
Please dont shit post, comments like this are useless in support section, its wasting everyones time
You can add code to handle signals to your server. You can add it like in TFS 1.2+ (close server on SIGINT) or make your server ignore SIGINT signal. So it won't close (crash) on CTRL+C from console or OTHER UNKNOWN source of SIGINT signals.
Signals tell application to shutdown for X reason. Most of signals can be ignored by C++ application. You just need to add code to handle these signals.

In all other threads on forum, you can read reports with SIGSEGV (segmentation fault) or SIGABRT. There are also stacks from which you can read what function was executed in moment of crash. In your case it's SIGINT and OTS is not executing any function in any thread in moment of crash.

ConstantExplanation
SIGTERMtermination request, sent to the program
SIGSEGVinvalid memory access (segmentation fault)
SIGINTexternal interrupt, usually initiated by the user
SIGILLinvalid program image, such as invalid instruction
SIGABRTabnormal termination condition, as is e.g. initiated by std::abort()
SIGFPEerroneous arithmetic operation such as divide by zero
 
Last edited:

Michael 4463

Premium User
Premium User
Joined
Nov 15, 2007
Messages
732
Solutions
5
Reaction score
225
Location
Santiago, Chile (Australian)
I use sudo ./start-tfs and after that i have functions that automatically restarts the server every 5:55:00AM so i think its the last option i let it go sleep with ssh/putty open

echo Starting Server....
sleep 0
screen -A -m -d -S tfs ./start.sh

Rather than leaving the ssh terminal open with your server console, I strongly suggest you do the following:

screen -a This will "attach" you to a new "screen"
sudo ./start-tfs Your start script(?)
[Press ctrl+a+d] This will detatch you from the screen, leaving it running in the background.
You can now disconnect from your ssh terminal and the game server will continue running.

Later, you can re-attach to the screen by typing screen -r

If it ever fails to bring you straight back to your game console, it is probably because you have multiple screens open and they'll now be listed for you. Simply add the name of one of the listed screens to your command e.g. screen -r 46234 where 46234 is the name of the screen listed.

If it won't let you return to the screen you want for some reason (probably because it is already attached) you can force it by using screen -r -d 46234 where 46234 is the name of the screen listed.

You might find that this will solve your problem.
 

kamilcioo

Veteran OT User
Joined
Jul 25, 2008
Messages
933
Reaction score
266
Rather than leaving the ssh terminal open with your server console, I strongly suggest you do the following:

screen -a This will "attach" you to a new "screen"
sudo ./start-tfs Your start script(?)
[Press ctrl+a+d] This will detatch you from the screen, leaving it running in the background.
You can now disconnect from your ssh terminal and the game server will continue running.

Later, you can re-attach to the screen by typing screen -r

If it ever fails to bring you straight back to your game console, it is probably because you have multiple screens open and they'll now be listed for you. Simply add the name of one of the listed screens to your command e.g. screen -r 46234 where 46234 is the name of the screen listed.

If it won't let you return to the screen you want for some reason (probably because it is already attached) you can force it by using screen -r -d 46234 where 46234 is the name of the screen listed.

You might find that this will solve your problem.
Its better to start named session so you dont have to check numbers, like screen -S ots
To restore: screen -xS ots
 
Top