OPCOM seems to time-out.

  1. 9 years ago

    I've been making a large-scale mission with the intention of it being a near-perpetual battle, with both sides on a dynamic reinforcement pool.
    I've hit a snag though, it's taken a while to confirm it, but after a number of hours (two or three) both sides OPCOMs stop assigning objectives. With Virtual AI debug on I can no longer see movement crosses after this time, and all forces sit stationary.
    I've tried all permutations of force sizes and balancing, but the problem seems to be that after a while OPCOM just gets bored and goes home.
    Any ideas? Is this a setup issue? A bug?

  2. Edited 9 years ago by BlackAlpha

    I second the original post. There appears to be a bug in ALIVE that makes it stop working after a few hours.

    I've done extensive testing with just ALIVE/CBA and I have never been able to get OPCOM to really work for more than a few hours. After a few hours OPCOM stops assigning objectives, units stop respawning and it then also stops sending units to objects. If I run some fancy scripts to look at the OPCOM information, I can see that objectives are assigned, I can see that groups are assigned to objectives, but no units are moved regardless. It's like OPCOM is frozen completely.

    The simplest test that I couldn't even get to work is (using a bare minimum amount of modules with as much as possible default settings):

    1. Give each side 1 custom objective in which they can respawn. Give like 50 units to each side.
    2. Create an empty custom objective somewhere in between those 2 zones that is assigned to both sides, so that they will fight over that objective.
    3. Make sure the player is not nearby and let the mission run for a while.
    4. OPCOM reliably breaks after 2 to 4 hours. I know this because when this bug happens, AI units stop moving around the map, they also stop respawning, and the objective status is not updated properly anymore. What I mean with the latter is that the objective in the center might be assigned to BLUFOR, OPCOM says a BLUFOR unit is standing inside the objective, but if I look at the unit in question, the unit is actually not in the objective but kilometers away, in a completely different location, and is not moving.

    Seeing as how even such a small, simple mission doesn't work, I think it's pretty clear that it's not the server performance that is causing the bug.

    I have been able to get OPCOM to work longer by making it so OPFOR and BLUFOR AI never fight each other. So, what I mean is:

    1. Give BLUFOR AI a single objective that is not assigned to OPFOR.
    2. Vice versa for OPFOR, but give OPFOR some more objectives that the players will be able to fight over.
    3. Let the mission run for 12 hours. No fighting happens during that time.
    4. Afterwards, let players attack some objectives. The OPFOR AI then tries to reinforce and take back the objectives, killed AI units also respawn. This means that OPCOM still works at that point.
    5. But after a few hours of actual fighting (players VS AI), OPCOM again breaks. The objectives stop being updated properly, no units are moved around and AI stops respawning.

    I also tried to create a mission in which AI units don't respawn, so all units are spawned by ALIVE on mission start, but that changes nothing.

    I did all testing on a dedicated server.

    So, it seems that ALIVE works for as long as there's no combat happening. If there is combat happening, it seems to break after a few hours.

    I don't have a test mission for you because last time I did any tests was about 2 months ago, which is when I gave up on ALIVE. But it's not like it's hard to reproduce this bug, seeing as how it always breaks after a few hours.

  3. Edited 9 years ago by SpyderBlack723

    Haven't tested your repro yet but can't say I've expierenced the same in the past. All of my sessions usually last a few hours and I've never had a consistent issue. I've only expierenced the issue during massive missions with well over 2500+ profiles while hosting and playing the mission off the same PC.

    Helps to post your mission file as well if you're having serious issues, much easier to check each bit that might be important.

  4. Edited 9 years ago by SavageCDN

    Just so I'm clear on your repro steps, BlackAlpha:

    • Custom mil objective for both sides with approx 50 units (groups?) for each.
    • Custom mil objective (set to objectives only) between the 2 sides synced to both OPCOMs
    • player unit far enough away that profiles will not spawn
    • wait minimum of 4 hours

    It's been a while since I've tested all custom objectives (since they were first introduced IIRC) - have you noticed this only happens when using custom objectives or does it also happen using the regular placement modules?

    Also are you testing using military logistics for both OPCOMs so both sides receive replacements?

  5. Edited 9 years ago by BlackAlpha

    Yes, that should be the repro. They both use a mil logistics module.

    I noticed the bug first with regular zones. I used custom objectives later on because it's easier for testing.

    I'll also try to repro it again and tell you how it goes.

    Let it run longer. I've had it once break at 1 and a half hours and once after 14 hours. I'd say, let it run for a day, then you'll be pretty sure.

  6. Edited 9 years ago by SavageCDN

    OK will be testing this tonight and tomorrow with latest public release

    edit:
    With both alive_test_1 and alive_test_2 missions the problem seems to be that CSAT is not receiving BCRs from the logistics module (NATO does receive them). Eventually CSAT runs out of groups to send on the attack and NATO doesn't have any more objectives to take so they both sit.

    Going to delete and replace the logistics modules and re-test

    edit2: confirmed it's an issue - one that is not consistent (ie: doesn't happen every time). Might take a while to nail down the cause.

    "after about 6 hours some profiles got corrupted, that dont seem to move anymore and dont spawn / despawn but still are in the profilehandler hash and therefore OPCOM waits until they completed their waypoints (but they dont get simulated) and this is locking up OPCOM"