• 0
Mr.Pig

Database Error and Load in timeout

Question

Need some help here.... Please :)

We run 3 Exile servers, and since the update we have randomly, and often enough for it to be annoying to players and cause us to do a lot of testing and re checking of files. The issue comes from players not being able to load into the game. ie Bambi creation timeout or an existing player timeout. Now, like I said this appears to be random, meaning the server can run a full 3 hour restart and nothing or it can run 15 minutes and then cause the problem. Once this starts it will not stop until a restart happens.

We have tried, re-installing mysql, strict mode disabled, disabled all mods and missions.. and probably many other random stuff to try and solve the issue. Now strangely enough, our Namalsk server seems to suffer more than our other 2, and Namalsk was obviously on a fresh Database, while the other two have been upgraded. All 3 run identical, except for Namalsk is using the coastal spawn system.

Here is the error from the extDB/Log:

[23:09:17:105067 --4:00] [Thread 3912] extDB2: SQL_CUSTOM_V2: Error StatementException: MySQL: [MySQL]: [Comment]: mysql_stmt_execute error	[mysql_stmt_error]: Cannot add or update a child row: a foreign key constraint fails (`exile_namalsk`.`player`, CONSTRAINT `player_ibfk_1` FOREIGN KEY (`account_uid`) REFERENCES `account` (`uid`) ON DELETE CASCADE)	[mysql_stmt_errno]: 1452	[mysql_stmt_sqlstate]: 23000	[statemnt]: INSERT INTO player SET account_uid = ?, name = ?
[23:09:17:105126 --4:00] [Thread 3912] extDB2: SQL_CUSTOM_V2: Wiping Statements + Session
[23:09:17:105139 --4:00] [Thread 3912] extDB2: SQL_CUSTOM_V2: Error: UniqueID: 1 Input String: createPlayer:SomethingWentWrong:SomethingWentWrong

Now, why would this error occur?

Why would the server not get the correct information for the players, reference the last line from above code? (Below code is file where it got "SomethingWentWrong")

/**
 * ExileServer_object_player_database_insert
 *
 * Exile Mod
 * www.exilemod.com
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_player","_playerID"];
_player = _this;
_playerID = format["createPlayer:%1:%2", _player getVariable ["ExileOwnerUID", "SomethingWentWrong"], _player getVariable ["ExileName", "SomethingWentWrong"]] call ExileServer_system_database_query_insertSingle;
_player setVariable ["ExileDatabaseID", _playerID];
_playerID

I have seen a few posts on the forms about this same, or at least very similar issue. Any help would be great or advice on what else we can try to solve this issue. 

@Eichi

1 person likes this

Share this post


Link to post
Share on other sites

9 answers to this question

  • 0

https://github.com/CBATeam/CBA_A3/issues/154#issuecomment-147117231

Bohemia has once again hosed us all, apparently there new event stacker system is inter-fearing with the exile server config code, which uses the older one currently. Since the code is protected no one's suppose to edit that, so until the exile team converts to the new system, were bunk...

We have a few modded servers in wip with same issue, the link above explains why the account setup works initially, but then conflict with the new system prevents a player reconnecting from restoring their account, this is a server config issue that, unfortunately, the exile team will have to patch to the new system quote " The solution to the problem is for Exile to change the ExileServer_system_process_preInit.sqf file to use the BIS_fnc_addStackedEventHandler command to hook into the onPlayerConnected andonPlayerDisconnected events instead of calling onPlayerConnected and onPlayerDisconnected directly. That way, the Exile mod will work not only with CBA but with all other mods and missions that make use of the new system: "

Constructively speaking, I love how Bohemia decides to make some "nice new change" to their game, seemingly without even thinking of the potential impact it has on a modding community, which they say they support, and just let us all deal with days of nerve racking frustration to fix the game, the mods, everything, wouldn't it be nice if they gave us a heads up on some code details before they destroyed tens of thousands, hundreds of thousands, of players gaming on their systems, I can't tell you how much, "discomfort", we have experienced as a result. My sympathy for exile team, and all us devs...

Share this post


Link to post
Share on other sites
  • 0

From what I can see, the server is trying to create a player for an unknown account. Accounts are created when the player connects to the server and the onPlayerConnected event is thrown. It seems to be the case that this event is not thrown.

2 hours ago, Bridson said:

Bohemia has once again hosed us all, apparently there new event stacker system is inter-fearing with the exile server config code

Did we miss something? I have not seen anything about that in their changelogs. 

Share this post


Link to post
Share on other sites
Advertisement
  • 0

Posted (edited)

The recent news release says it's slated for 1.58 release, it definitely seems however that something got pushed through, now comes the endless combing though info to see what can be found...

With ours even a vanilla install is causing the problem after client connects, so they can play through until they log, then there glitched into the ground with a constant drop back into the lobby...

A number of servers are having similar issues, I was going through the forums here and found over a dozen entries, I have friends in the community giving me feedback on it constantly, this may not be the exact problem, but it's related somehow for sure, were still having issues with fresh installs, I've default loaded altis life server, wasteland, epoch, and such just today and it's only happening when I run exile mod...

Look, alot of the things bohemia is doing is awesome, and exile is the best mod in it's genre for it IMO, just really sucks when you get everything going just right and a day later an update comes out and you get nuked, I know the exile team has felt that pain...

Edited by Bridson

Share this post


Link to post
Share on other sites
  • 0

That's why there is a dev branch. You can indeed try out the changes before they hit all the players, but it is quite the undertaking to check everything out.

Share this post


Link to post
Share on other sites
  • 0

Posted (edited)

8 hours ago, Eichi said:

From what I can see, the server is trying to create a player for an unknown account. Accounts are created when the player connects to the server and the onPlayerConnected event is thrown. It seems to be the case that this event is not thrown.

Did we miss something? I have not seen anything about that in their changelogs. 

@Eichi
There is nothing new here :)
BIS for once isn't to blame 

The person is running CBA mod & Exile together without override fixes to get Exile to play nice with CBA.
So the onPlayerConnected & onPlayerDisconnected eventhandlers are screwed up and never run Exile Function to create the Player Account.

Edited by Torndeco
2 people like this

Share this post


Link to post
Share on other sites
  • 0

Posted (edited)

15 hours ago, Torndeco said:

@Eichi
There is nothing new here :)
BIS for once isn't to blame 

The person is running CBA mod & Exile together without override fixes to get Exile to play nice with CBA.
So the onPlayerConnected & onPlayerDisconnected eventhandlers are screwed up and never run Exile Function to create the Player Account.

Yes we are running CBA mod now, however like i stated in the first post. I had disabled mods and went with default Exile and the error was still present. It didn't make any difference whether we used (assuming you mean this).

onPlayerConnected {[_uid, _name] call ExileServer_system_network_event_onPlayerConnected};
onPlayerDisconnected {[_uid, _name] call ExileServer_system_network_event_onPlayerDisconnected};


or


["ExileOPC", "onPlayerConnected", {[_uid, _name] call ExileServer_system_network_event_onPlayerConnected}] call BIS_fnc_addStackedEventHandler;
["ExileOPD", "onPlayerDisconnected", {[_uid, _name] call ExileServer_system_network_event_onPlayerDisconnected}]; call BIS_fnc_addStackedEventHandler;

and this doesn't just happen to new players joining for the first time, it happens to players loading in who have an alive player in the db

Edited by Mr.Pig
1 person likes this

Share this post


Link to post
Share on other sites
  • 0

^ Added the above to our server files now. If it does not influence us in a negative way, it will make it into the next release. Then this endless CBA topic will have an end, hopefully :) 

1 person likes this

Share this post


Link to post
Share on other sites
  • 0
22 minutes ago, Eichi said:

^ Added the above to our server files now. If it does not influence us in a negative way, it will make it into the next release. Then this endless CBA topic will have an end, hopefully :) 

LOL... Hopefully.

Still can't wrap my head around this error. I am running out of things to try.

1 person likes this

Share this post


Link to post
Share on other sites
  • 0

Yup went back to 9.4.1 for now and it's working swimmingly, we'll see on the next round, till then we got a test server we can play with for the recent, but, may never get played with before someone figures it out...cheers

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.