Game mode: online PVP server
Type of issue: RCON crashes the server when executing sql
Server type:PVP
Region: EU / but we are in South Africa (no region for us so just set to eu)
we use ping perfect as our host. had the server for more than a year now (recentlyish had a wipe etc). since we’re using a hosting company we cant run scripts localy. like find inactive etc. im a developer and would like to have a single view of whats going on on the server. so i built some tools.
part of that needs to be able to use rcon to execute a sql statement for instance (select * from account) (will include a view for sqllite at the end)
however, the server keeps crashing when executing a rcon sql command.
the server log shows:
[2019.01.16-14.06.46:256][ 0]LogInit: WinSock: Socket queue 131072 / 131072
[2019.01.16-14.06.46:257][ 0]PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
[2019.01.16-14.06.46:257][ 0]LogNet: GameNetDriver SteamNetDriver_0 IpNetDriver listening on port 17000
[2019.01.16-14.06.46:407][ 0]LogWindows:Error: === Critical error: ===
[2019.01.16-14.06.46:407][ 0]LogWindows:Error:
[2019.01.16-14.06.46:407][ 0]LogWindows:Error: Fatal error!
[2019.01.16-14.06.46:407][ 0]LogWindows:Error:
[2019.01.16-14.06.46:407][ 0]LogWindows:Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000
[2019.01.16-14.06.46:408][ 0]LogWindows:Error:
[2019.01.16-14.06.46:408][ 0]LogWindows:Error: !0x0000000000000000
[2019.01.16-14.06.46:408][ 0]LogWindows:Error:
[2019.01.16-14.06.46:419][ 0]LogExit: Executing StaticShutdownAfterError
[2019.01.16-14.06.46:423][ 0]LogWindows: FPlatformMisc::RequestExit(1)
[2019.01.16-14.06.46:424][ 0]Log file closed, 01/16/19 14:06:46
it worked once out of like 15 attempts and the other 14 times crashed the server.
im using: https://github.com/xPaw/PHP-Source-Query (since i need to do it in PHP)
**** it might be the library im using to execute the commands but i suspect its got more to do with the server than the socket maker ****
a while ago we used to have a ton of crashes, similar to this. we had rcon enabled and used battlemetrics rcon. after that i disabled rcon and shelved the idea. but this is just so frustrating
my test has been with this:
rcon -> sql SELECT * FROM _Structures LIMIT 0,10
sqllite view (thanks sixxgunz):
CREATE VIEW IF NOT EXISTS "_Structures" AS
SELECT
pb.name AS Owner,
pb.pb_id AS pb_id,
pb.type AS type,
COUNT(bi.instance_id) AS 'Pieces',
ap.x || ' ' || ap.y || ' ' || ap.z AS Location
FROM
building_instances AS bi
INNER JOIN buildings b ON b.object_id = bi.object_id
INNER JOIN actor_position ap ON ap.id = bi.object_id
INNER JOIN (
SELECT guildid AS pb_id, name, 'clan' AS type
FROM guilds
UNION
SELECT id, char_name, 'solo' AS type
FROM
characters
) pb ON b.owner_id = pb_id
GROUP BY bi.object_id
ORDER BY lower(Owner), COUNT(bi.instance_id) DESC;
script: https://github.com/xPaw/PHP-Source-Query
use xPaw\SourceQuery\SourceQuery;
define('SQ_SERVER_ADDR', $this->cfg['RCON']['HOST']);
define('SQ_SERVER_PORT', (int)$this->cfg['RCON']['PORT']);
define('SQ_TIMEOUT', (int)$this->cfg['RCON']['TIMEOUT']);
define('SQ_ENGINE', SourceQuery::SOURCE);
$Query = new SourceQuery();
try {
$Query->Connect(SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE);
$Query->SetRconPassword($this->cfg['RCON']['PASSWORD']);
var_dump($Query->Rcon('sql SELECT * FROM _Structures LIMIT 0,10'));
exit();
} catch ( \Exception $e ) {
echo $e->getMessage();
} finally {
$Query->Disconnect();
}
Steps:
- make a php file.
- use above
- run php file to establish a rcon connection and to execute a sql statement on the server
- server crashes