Bug #4655

MP game gets reset while playing

Added by Fireball almost 6 years ago. Updated almost 3 years ago.

Status:Feedback Start date:09/19/2009
Priority:Normal Due date:
Assignee:Benny % Done:

0%

Category:Multiplayer
Target version:-
Affected ArmA II version:1.58.78473 First affected build:
Reproduced by another DH user:No First affected ArmA II version:
I am using some Mods:No Single / Multi Player?:
I am using: BIForumURL:
Reproducible for you:No NGUrl:
Related to content of DLC: WIKIurl:

Description

Seen in Warfare BE:

After some time the whole game resets; i mean that cities that were previously fully supplied go to zero but not those that have a unit nearby the depot, and all the income goes to 0/minute, also options menu disappear and existing players can't respawn, while JIP players respawn immediatly where they died.

Benny wrote:

The reset bug occurs randomly, last time a low ping/bw dude joined and we got reseted (i know it with -showScriptErrors).

Seems not to be a mission issue, rather a JIP thing (but maybe not limited to that event).
Happened with the dedicated server of the XR server (Hotshots) - not proven if it is a ded. server issue only though.

Issue Facts:
- 'time' is reset to 0
- stored variables are cleared
- current scripts are terminated

Non-mitigating factors (i.e. it still happens despite of):
- BIS Functions Module is not used
- Multiplayer Framework is not used
- Addons are not used
- setVariable/getVariable were reduced to a minimum

arma2oa.RPT - RPT of JIP Client that triggered the issue. (818.4 kB) Benny, 06/14/2011 11:09


Related issues

related to ARMA2 Community Issue Tracker - Bug #17876: Warfare - after 2-3h unable to buy weapon, ammo or new units Assigned 02/25/2011 05/25/2011
duplicated by ARMA2 Community Issue Tracker - Bug #23249: Menu Bug Duplicate 08/08/2011 11/22/2011

History

Updated by Benny almost 6 years ago

Adding a note, the variable 'time' seems to be reseted aswell as most of the server scripts are running a check at the beginning, variables stored via setVariable are reinitialized too.

Check of the server scripts:
1 if (!isServer || time > 30) exitWith {};

This reinitialization only occurs when a player joins, whether he have a good ping/bandwith or not doesn't matter. Mostly occurring after a +1 hour game. Today a guy joined alone on the server when there was around 26 players and it occured again. There is no errors in both, client & server rpt.

Updated by Fireball almost 6 years ago

Would you say, that this issue was introduced with patch 1.04 or did you observe it earlier?

Updated by Benny almost 6 years ago

Happened before, on 1.03. Can't say about earlier versions.

Updated by Fireball almost 6 years ago

  • Reproduced by another DH user set to Yes

Reproduced as in it happens over and over again and I observed it - not to say suffered it - many times. But it cannot be easily repro'ed manually.

Updated by Benny almost 6 years ago

I can say at 95% that this problem will never happens if the server.exe just got launched. We had 10 hours/9 hours game and it never occured, only in the 'next' round.

Updated by Dwarden almost 6 years ago

  • Status changed from Assigned to Feedback
  • Assignee set to Dwarden

please retest with new beta (newer than 59323) when is released

Updated by Fireball almost 6 years ago

  • Due date changed from 10/19/2009 to 11/19/2009

Still no new beta released - maybe we'll have to wait for the official release.

Updated by Benny almost 6 years ago

Some new informations, don't really know if it'll help or not, a client which triggered it had:
- CPU: Q6600
- GFX: ATI 4870
- ArmA: 1.04 (Non beta)
- No mods.

Updated by Benny over 5 years ago

Tested with dedicated server on 60141 build. The problem is still here, it even occurs 3 minutes after that the game is launched.

Updated by Fireball over 5 years ago

  • Due date changed from 11/19/2009 to 12/19/2009
  • Status changed from Feedback to Assigned

Still an issue, thanks for the feedback, Benny.

Updated by Xeno over 5 years ago

I have never seen that behaviour in any other mission.

Is this related to Warfare only ?

Updated by Benny over 5 years ago

Well, i haven't really played alot of other missions but i can tell you one thing via diag_log, time variable go back to 0 and all stored variable on different objects too (they goes nil), it's just as if a #restart was performed on server side, client side has no problem.

It's only occurring in a Join in Progress. I'm not using anything special and the JiP script is not special either, it can occurs right after 3 minutes or just after +9 hours, i got no clues, why does the Time variable go back to 0?

Updated by Xeno over 5 years ago

Benny, I've made allready a lot of MP missions and never seen it, that's why I ask.

Though I'm not using initJIPcompatible.sqf (means I'm not using the MP framework at all) but start most of the client scripts using a trigger with condition local player.

Concerning the time variable, no problems with it.

Updated by Benny over 5 years ago

I guess i'll stop using the mp framework, it might bring up this issue.

time variable shall never get reseted :s.

Updated by Fireball over 5 years ago

  • Status changed from Assigned to Feedback

So we'll need to hear if the MP Framework is the issue - where's that from?

Updated by Benny over 5 years ago

I'll completely remove the MPF by removing all links that call it (Removing function manager & making a custom High Command init).

I'll add some feedback as soon as i'll have tested it long enough without it.

Updated by Benny over 5 years ago

Tested on both beta 60295 and normal 1.04, reinitialization occured on both at miscleanous moments during that a player join, it can occur more than once in a game.

- Functions Modules is not used.
- Multiplayer Framework is not used.
- Addons are not used.

Out of ideas, i'm not using any modules (high command is not used anymore, construction interface | UAV are customized via scripts (they're not used from ca\modules and ain't called from editor)).

diag_log report that no variables survived on server side after the reinitialization (they've just went nil). Only 'special' thing that i'm using is broadcasted setVariable (on groups, objects and logic).

I don't think that it's related to the load since it can occurs just 3 minutes after game start. It's just like a #reassign is performed on server, current server scripts are terminated and replaced by the 'new' ones.

Updated by Benny over 5 years ago

Updating, ICE version (based off mine), never had the issue with ~20 players.

I've always been doing it for 32 players, the server fps is more than correct, only 2 things left to be checked to me are the network and the load (CPU). The player amount is the only main thing that differ between our versions.

Updated by sbsmac over 5 years ago

it can occurs right after 3 minutes or just after +9 hours

This may just be co-incidence but 9 hours = 32400 seconds which is just under half 2^16 seconds, possibly indicating the wrap of a signed number.

Updated by tcp over 5 years ago

Windows Server 2003 64-bit
Dedicated Beta 60588
Happened in v2.048 ICED version. As well as Warfare BE regular (new and old) and AWP Warfare.
Has happened on every Warfare game we've played on our server. Even after a fresh reboot and on first round.

No errors until after a couple of hours (varies from 2-8 hours). Always ends up showing an undefined variable error with a variable that tries to get it's value using getVariable on WF_Logic. Tried making WF_Logic first item in mission.sqm to no effect.

@
Current time: 2009/11/29 18:00:45

Cannot register unknown string STR_USRACT_ACTION_CONTEXT
2009/11/29, 18:15:59 NAT Negotiation completed
@

No errors except normal messages until ~2 hours later:
@
2009/11/29, 20:26:16 Server: Network message 63981c is pending
2009/11/29, 20:26:58 Server: Object 8:35 not found (message 121)
2009/11/29, 20:29:01 NAT Negotiation completed
2009/11/29, 20:29:43 NAT Negotiation completed
2009/11/29, 20:29:49 Error in expression <ic getVariable "emptyVehicles"; {
if (!(_x in emptyQueu)) then {
_vehicles2 = WF>
2009/11/29, 20:29:49 Error position: <_x in emptyQueu)) then {
_vehicles2 = WF>
2009/11/29, 20:29:49 Error Undefined variable in expression: _x
2009/11/29, 20:29:49 Error in expression <getVariable "emptyVehicles"; {
if (!(_x in emptyQueu)) then {
_vehicles2 = WF_Lo>
2009/11/29, 20:29:49 Error position: <in emptyQueu)) then {
_vehicles2 = WF_Lo>
2009/11/29, 20:29:49 Error Generic error in expression
@

Updated by Benny over 5 years ago

When server reintialize itself, it reinitialize everything along with it (including stored variables), it also terminate current scripts.

I can't really do anything about this bug now as i got no idea about what does the jip script send to the client & how does the server behave to them.

Updated by Fireball over 5 years ago

Confirming, still happens.

I saw this when it happened (using -showscripterrors):

Error in expression <];
_markers = _markers + [_markerName];
CreateMarkerLocal [_markerName,getPos _x>
  Error position: <CreateMarkerLocal [_markerName,getPos _x>
  Error 0 Elemente angegeben, 3 erwartet
File mpmissions\__CUR_MP.Chernarus\Client\GUI\GUI_Respawn.sqf, line 89
Error in expression <ect 5};

deleteMarkerLocal _markerName;
CreateMarkerLocal [_markerName,_markerPo>
  Error position: <CreateMarkerLocal [_markerName,_markerPo>
  Error 0 Elemente angegeben, 3 erwartet
Remote entity want to supply: EastSlot3
Remote entity want to supply: EastSlot3
Remote entity want to supply: EastSlot3
Remote entity want to supply: EastSlot3
Remote entity want to supply: EastSlot3
Remote entity want to supply: EastSlot3
Remote entity want to supply: EastSlot3
Error in expression <];
_markers = _markers + [_markerName];
CreateMarkerLocal [_markerName,getPos _x>
  Error position: <CreateMarkerLocal [_markerName,getPos _x>
  Error 0 Elemente angegeben, 3 erwartet
File mpmissions\__CUR_MP.Chernarus\Client\GUI\GUI_Respawn.sqf, line 89
Error in expression <ect 5};

deleteMarkerLocal _markerName;
CreateMarkerLocal [_markerName,_markerPo>
  Error position: <CreateMarkerLocal [_markerName,_markerPo>
  Error 0 Elemente angegeben, 3 erwartet
Error in expression <];
_markers = _markers + [_markerName];
CreateMarkerLocal [_markerName,getPos _x>
  Error position: <CreateMarkerLocal [_markerName,getPos _x>
  Error 0 Elemente angegeben, 3 erwartet
File mpmissions\__CUR_MP.Chernarus\Client\GUI\GUI_Respawn.sqf, line 89
Error in expression <ect 5};

deleteMarkerLocal _markerName;
CreateMarkerLocal [_markerName,_markerPo>
  Error position: <CreateMarkerLocal [_markerName,_markerPo>
  Error 0 Elemente angegeben, 3 erwartet
Error in expression <sNull commanderTeam) then {
if (!IsNull _MHQ) then {
_MHQ RemoveAction 0;
_MHQ R>
  Error position: <_MHQ) then {
_MHQ RemoveAction 0;
_MHQ R>
  Error Nicht definierte Variable in Ausdruck: _mhq
Protocol bin\config.bin/RadioProtocolEN/: Missing word Vyshnoye
Client: Object 2:14930 (type Type_67) not found.
Client: Object 104:50 (type Type_121) not found.
Client: Object 104:54 (type Type_121) not found.
Client: Object 64:373 (type Type_121) not found.
Client: Object 2:15012 (type Type_82) not found.
Client: Object 86:155 (type Type_121) not found.
Client: Object 109:29 (type Type_121) not found.
Client: Object 104:50 (type Type_67) not found.
Client: Object 104:51 (type Type_86) not found.
Client: Object 104:50 (type Type_93) not found.
Client: Object 109:33 (type Type_121) not found.
Client: Object 109:37 (type Type_121) not found.
Client: Object 86:159 (type Type_121) not found.
Client: Object 68:348 (type Type_121) not found.
Client: Object 86:163 (type Type_121) not found.
Client: Object 86:167 (type Type_121) not found.
Remote entity want to supply: WestSlot12
Remote entity want to supply: WestSlot12
Remote entity want to supply: WestSlot12
Remote entity want to supply: WestSlot12
Remote entity want to supply: WestSlot12
Remote entity want to supply: EastSlot2
Remote entity want to supply: EastSlot2
Remote entity want to supply: EastSlot2
Remote entity want to supply: EastSlot2
Remote entity want to supply: EastSlot2
Remote entity want to supply: EastSlot8
Remote entity want to supply: EastSlot8
Remote entity want to supply: EastSlot8
Remote entity want to supply: EastSlot8
Remote entity want to supply: EastSlot8
Remote entity want to supply: EastSlot8

Updated by kju over 5 years ago

  • Due date changed from 12/19/2009 to 03/04/2010
  • Status changed from Feedback to Assigned

Still common issue for Warfare BE?

Updated by kju over 5 years ago

  • Due date changed from 03/04/2010 to 03/25/2010
  • Status changed from Assigned to Feedback
  • Assignee changed from Dwarden to Fireball
  • Affected ArmA II version changed from 1.04.59026 server to 1.05.62014 server

Fireball any experience playing in 1.05?

Updated by Fireball over 5 years ago

  • Assignee changed from Fireball to Benny

I think Benny knows better about it, than me right now.

Does it still happen?

Updated by Benny over 5 years ago

Yes, but less than before, i'm starting to suspect the amount of broadcasted setVariable over JIP, i'll try to make some repro asap (storing like 100 or 200 variables).

Updated by Benny over 5 years ago

Couldn't reproduce it, even if it occurs less than before, i think that it occurs under certain circumstance (since it use to occur at the beginning (~3 minutes) or at the end (+1 hour)).

Updated by Fireball over 5 years ago

  • Due date changed from 03/25/2010 to 04/25/2010
  • Assignee deleted (Benny)
  • Reproduced by another DH user changed from Yes to No

Thanks. The question would be then if it's down to an acceptable level or not.

Updated by kju about 5 years ago

  • Status changed from Feedback to Closed
  • Target version set to 1.07.71750
  • Audio card set to Please specify!
  • Size of OS swap file set to Please specify!

Lets assume to this sorted. Reopen if not.

Updated by Fireball over 4 years ago

  • Due date changed from 04/25/2010 to 05/25/2011
  • Status changed from Closed to Assigned
  • Target version deleted (1.07.71750)
  • Affected ArmA II version changed from 1.05.62014 server to 1.58.78473
  • I am using some Mods set to No
  • Reproducible for you set to No

It's NOT sorted, still happens.

Updated by Benny about 4 years ago

I can now confirm that this bug is related to the client. All isServer commands are true on an MP client joining a dedicated server and time is seen as 0, the client actually process the server part.

If it can "help", here is the rpt of the client that triggered it.

Note: Init_Server.sqf

Called from initJIPCompatible.sqf:
//--- Run the server's part.
if (isServer) then {ExecVM "Server\Init\Init_Server.sqf"};

Diag_log within Init_Server.sqf:
diag_log Format["[WFBE (INIT)][frameno:%2 | ticktime:%3] Init_Server: Init Start at %1",time,diag_frameno,diag_tickTime];

Client RPT Result:
"[WFBE (INIT)][frameno:181061 | ticktime:6635.22] Init_Server: Init Start at 0"

Attached is the full RPT log.

Updated by Xeno about 4 years ago

Question Benny, why do you even start server side scripts in initJIPCompatible ? JIP = Client, servers don't JIP in :D

How about moving server stuff to init.sqf which gets handled by the engine and not a "module" like the MP framework.

Maybe I'm wrong here because I've never used the MP framework but at least I never had those problems.

Updated by Benny about 4 years ago

Xeno wrote:

Question Benny, why do you even start server side scripts in initJIPCompatible ? JIP = Client, servers don't JIP in :D

How about moving server stuff to init.sqf which gets handled by the engine and not a "module" like the MP framework.

Maybe I'm wrong here because I've never used the MP framework but at least I never had those problems.

I've had the same behaviour while moving it on init.sqf or moving it within the editor (editor's logic with init fields).

It's not related to the MP Framework as i've previously tried to completely remove it and still had the same issue.

I'm clueless about what to do next beside from adding nil check everywhere :P

Updated by Xeno about 4 years ago

Hm, weird. Really never had those issues in all my MP missions.

Updated by zGuba over 3 years ago

  • Status changed from Assigned to Feedback

Did it occur to anybody with 1.60?

Updated by zGuba over 3 years ago

  • Due date changed from 05/25/2011 to 05/25/2012

Updated by Benny over 3 years ago

Yes, it still happens. Less frequently still.

Hard to make a repro for it but still trying.

Updated by kju almost 3 years ago

  • Due date deleted (05/25/2012)
  • Assignee changed from admin to Benny
  • Private changed from Yes to No

Also available in: Atom PDF