Terasology / Terasology/ModuleTestingEnvironment

Guard against infinite loops - add timeout somehow if a test gets stuck?

Open
#25 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
3
Forks
17
PR merge metrics
No merged PRs in 30d

Description

Specific example: https://github.com/Terasology/SimpleFarming/issues/97

One theory is something goes weird and the MTE test just keeps generating chunks forever, which prints one of those log snippets about compacting the chunk cache every tick, which might be the only indication that something is still happening, otherwise it would just appear to hang.

I've seen similar cases elsewhere. For instance http://jenkins.terasology.io/teraorg/job/Terasology/job/engine/view/change-requests/job/PR-4036/ related to https://github.com/MovingBlocks/Terasology/pull/4036 for some reason got stuck several times for hours on end. One example printed this a bunch (although not nearly as much as the SimpleFarming PR):

11:50:39.535 [Test worker] ERROR o.t.w.b.internal.BlockManagerImpl - Attempt to fetch block with unknown uri 'engine:air'

It may not be an issue specific to the MTE, could be some underlying issue with environment-based tests. Not sure which actual test stalls for SimpleFarming, although the engine one is StorageManagerTest extends TerasologyTestingEnvironment so yeah not MTE, but maybe both hit that environment class?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the SimpleFarming issue 97 case and inspect StorageManagerTest and TerasologyTestingEnvironment. Compare the behavior with the Jenkins PR-4036 run to determine whether both stalls share the environment-test path. Done means stalled tests reliably time out or otherwise report a clear failure instead of running indefinitely.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.