• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

[Mutator] Server Achievements

Crashes so far only occur with shotgun projectiles.
Didn't think the parts after touch would help much, but here's more.
Code:
Critical: SAGameRules KF-ALTTP-ZELDA.SAGameRules (Function ServerAchievements.SAGameRules.NetDamage:0182) Runaway loop detected (over 10000000 iterations)
Exit: Executing UObject::StaticShutdownAfterError
Critical: FFrame::Serialize
Critical: UObject::ProcessEvent
Critical: (KSGBullet KF-ALTTP-ZELDA.KSGBullet, Function Engine.Projectile.Touch)
Critical: TouchTo
Critical: AActor::BeginTouch
Critical: ULevel::MoveActor
Critical: KSGBullet 
Critical: AActor::physProjectile
Critical: AActor::performPhysics
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: Level KF-ALTTP-ZELDA
Critical: UpdateWorld
Critical: UServerCommandlet::Main


  • What other mutators are you using?
  • Does this crash happen consistently when shotguns are are involved?
  • How do you trigger the crash?
 
Upvote 0
After a long time.
Look at the program code of Mr.Marco, I tried to challenge again.
Server program has Yes to confirm that I can connect with TCP test tool.;)

Modified the Mutator.

class ServerTcpLink extends TcpLink;
Code:
event Resolved(IpAddr addr) {
    serverAddr= addr;
    serverAddr.port= class'SAMutator'.default.tcpPort;

    //if (!Open(serverAddr)) {
    if (!OpenNoSteam(serverAddr)) {
        log("Cannot reach remote host"@IpAddrToString(serverAddr));
    }
}

function sendRequest(string request, string body) {
    if (!isOpenned) {
        BindPort();
        //Open(serverAddr);
        OpenNoSteam(serverAddr);
    }
 :
Mr.Marco has to randomize the bind port manually.
Has also allowed delay for FTP? .
However, operating at least one row of fix I was confirmed.


ServerPerksV7 I must modify the tab at the local ?:confused:


Sample ServerPerks
Code:
function BeginEvent()
{
    Mut.SaveAllStats = SaveAllStats;
    Mut.RequestStats = RequestStats;
    if( Mut.bDebugDatabase )
    {
        bLogAllCommands = true;
        bFullVerbose = true;
    }

    LinkMode = MODE_Line;
    ReceiveMode = RMODE_Event;
    Resolve(Mut.RemoteDatabaseURL);
}

event Resolved( IpAddr Addr )
{
    SiteAddress = Addr;
    SiteAddress.Port = Mut.RemotePort;
    GoToState('Idle');
}

state Idle
{
Ignores Timer;

    final function StartConnection()
    {
        local int i;
        
        for( i=0; i<40; ++i )
        {
            BindPort(500+Rand(5000),true);
            if( OpenNoSteam(SiteAddress) )
            {
                GoToState('InitConnection');
                return;
            }
        }
        ReportError(4,"Port couldn't be bound or connection failed to open!");
    }
    function SaveAllStats()
    {
        Global.SaveAllStats();
        if( bUploadAllStats )
            StartConnection();
    }
    function RequestStats( ServerStStats Other )
    {
        Global.RequestStats(Other);
        StartConnection();
    }
Begin:
    Sleep(0.1f);
    if( bUploadAllStats || PendingLoaders.Length>0 )
        StartConnection();
}
 
Last edited:
Upvote 0
no problem ? :confused::confused::confused:

Code:
SocketException - Cannot read from 192.168.1.50:61792 (in etsai::cpputilities::Socket::read line 155)

Max idle time reached, force closing the connection from 192.168.1.50:61794
SocketException - Cannot read from 192.168.1.50:61794 (in etsai::cpputilities::Socket::read line 155)
 
Last edited:
Upvote 0
no problem ? :confused::confused::confused:

Code:
SocketException - Cannot read from 192.168.1.50:61792 (in etsai::cpputilities::Socket::read line 155)

Max idle time reached, force closing the connection from 192.168.1.50:61794
SocketException - Cannot read from 192.168.1.50:61794 (in etsai::cpputilities::Socket::read line 155)

If there is no activity on the socket for some time, the server will automatically close the connection. Also, odd that "OpenNoSteam" but not the normal "Open" function. Not sure what steam authentication has to do with opening a TCP connection.
 
Upvote 0
Version 1.3 and Xmas/Halloween 2014 update

Version 1.3 and Xmas/Halloween 2014 update

This update changes some of the features with the achievement engine and adds the achievements from the Halloween and Xmas events. The Server Achievements texture files are no longer needed; all textures used are now from the standard KF texture files.

Engine Changes


  • Fixed compatibility issue with ServerPerks V7
  • Added extra popup positions and ability to configure the position from User.ini file
  • Replaced background and check images with content available in the vanilla textures file
  • Deprecated the localHostSteamID64 config variable
  • Changed SAReplicationInfo to be derived from LinkedReplicationInfo
To configure the position of the achievement popup, clients can add these lines to their User.ini file.

Code:
[ServerAchievements.SAInteraction]
ppPosition=
The ppPosition value can be one of:

Code:
PP_TOP_LEFT,  
PP_TOP_CENTER,  
PP_TOP_RIGHT,  
PP_BOTTOM_LEFT,  
PP_BOTTOM_CENTER,  
PP_BOTTOM_RIGHT
Achievement Changes

  • Added achievements from the Halloween and Xmas 2014 events
  • Updated the icon for Killer Junior to use the texture in the vanilla files

Download
https://github.com/scaryghost/ServerAchievements/releases/download/1.3/ServerAchievements_v1.3.zip[url]https://github.com/scaryghost/ServerAchievements/releases/download/1.3/ServerAchievements_v1.3.zip[/URL]

https://github.com/scaryghost/Serve.../download/1.6/ServerAchievementsPack_v1.6.zip[url]https://github.com/scaryghost/ServerAchievementsPack/releases/download/1.6/ServerAchievementsPack_v1.6.zip[/URL]
 
Upvote 0
thx update.:)
nice work.

ah.. my trouble.
Sometimes server becomes unresponsive.

Remote Database Win32.
Error Repeat Server down ....:(

1.Start Server -> no problem

2.Sometime Error -> continue running.

3.Many error -> everytime error. server no renponse.
Need Restart.

Failing to disconnection, connections over?

Code:
Error committing data to the db
192.168.*.*:57*** - response= server-achievements,1,response|120|2|Error committing data to the db
 
Last edited:
Upvote 0
thx update.:)
nice work.

ah.. my trouble.
Sometimes server becomes unresponsive.

Remote Database Win32.
Error Repeat Server down ....:(

1.Start Server -> no problem

2.Sometime Error -> continue running.

3.Many error -> everytime error. server no renponse.
Need Restart.

Failing to disconnection, connections over?

Code:
Error committing data to the db
192.168.*.*:57*** - response= server-achievements,1,response|120|2|Error committing data to the db

Hrm..that's not good. Did this start happening after the last mutator update?
 
Upvote 0
ah...:(
2-3day limit.

Load failed -> achieve Server restart -> Progress data reset overwrite ...
Restart is Critical.
It's dangerous.

DB collision in insert loop??
OS Windows 2012R2 Server

Log
Code:
192.168.*.*:53*** - response= server-achievements,1,response|27|3|error retrieving saved data
192.168.*.*:53*** - request= server-achievements,1,request|28|retrieve|7656119**********.Stock Maps - Suicidal
error retrieving saved data
Console
Code:
Received connection from 192.168.*.*:53***
Waiting for a request from 192.168.*.*:53***
192.168.*.*:53*** - request= server-achievements,1,request|0|connect|host
192.168.*.*:53*** - response= server-achievements,1,response|0|0
Max idle time reached, force closing the connection from 192.168.*.*:53852
SocketException - Cannot read from 192.168.*.*:53852 (in etsai::cpputilities::S
ocket::read line 155)
Max idle time reached, force closing the connection from 192.168.*.*:53853
SocketException - Cannot read from 192.168.*.*:53853 (in etsai::cpputilities::S
ocket::read line 155)
add 17/2/2015
Maybe, is not closed Socket.
Sometimes the server to crash.
In that case, the network itself of PC falls.
To recover when shut down the Achievements Server.
 
Last edited:
Upvote 0
The finish of the test.
Port is locked by the SocketException....maybe.

Reduce by operation.(Add mut code)
1.I will keep conduct a dummy access within 45 seconds.
2.Save to delay cycle executed one by one. (option)
3.Auto Restart. Windows Warnning cancel setting.
4.Add TaskScheduler. 1-2day ? "TaskKill /F"

known issue.
1.Sometimes Program crush.
2.The problem with the All TCP/IP by error accumulation
Ex) Server ping 20-30 -> 200-300 or timeout.
3.Sometimes DB broken is corrupted when you save fail on error.
Ex) Index broken.


nnn....
.NET Server local build ?
maybe .... Not Thread safe.... ?
collision -> crush -> data lost -> overwrite -> user progress data reset.
 
Last edited:
Upvote 0
Bugreport:
Code:
...
Error: VeterancyChecks None (Function ServerAchievementsPack.VeterancyChecks.isFieldMedic:001D) Accessed null class context 'Perk'
Error: VeterancyChecks None (Function ServerAchievementsPack.VeterancyChecks.isFieldMedic:003B) Accessed null class context 'Perk'
...

What it is and how it could be improved?

I use ServerPerks.
 
Upvote 0
Connection 4 server

User table Count
1116
unknown high speed auto num countup.
155593

data table Count
17561
unknown high speed auto num countup.
3182841


Yesterday patch.
Data Load fail -> Save Skip.

Hrm...doesn't look like there is a lot of activity on the database side with only ~1000 users. The other issue you have with the network shutting down is worrisome. If sockets are not being released, then something is flawed with the Windows code. The net code is using WinSock, no .NET code in the application.
 
Upvote 0
Few words about "Cannot reach remote host"

Came across the same problem under WinServer 2012R2 (but I don't think OS matters)

I suppose the problem is with Open function in event Resolved (ServerTcpLink class)
I replaced Open function with OpenNoSteam (which opens a connection to a foreign host without requiring steam authentication)
and now everything is fine for me)

Also I installed steam on 2012R2 and entered my account. After that the version with Open began to work

So you can either install steam or edit ServerTcpLink code
 
Last edited:
Upvote 0