Skip to content

A playerbots-durable test can fail at random on a missed or dodged fixture hit #62

Open

Description

@Mathih13

Expected. A durable test's fixture should produce a deterministic result, not one that depends on a combat avoidance roll.

Actual (at be14507). playerbots_recovery_records_a_controlled_quest_while_survival_takes_priority calls playerbots_fixture_runner_survival_hit (playerbots/testsuite/tests/playerbots_recovery.rs#L1564) and then asserts the bot's health dropped (playerbots/testsuite/tests/playerbots_recovery.rs#L1588). The fixture (playerbots/src/fixture.rs#L3341, playerbots/src/fixture.rs#L2400) routes the hit through the real combat avoidance pipeline, combat::apply_hit, so a miss or dodge leaves health unchanged and the assert fails. #58 fixed the same pattern for a Mage defense test; this one was not touched.

How it shows. The playerbots-durable CI job fails at random, on an unrelated PR, with no code fault behind it.

Fix direction. Force the hit in the fixture so it always lands, or assert on the hit outcome apply_hit returns instead of comparing health before and after.

Activity

  1. Mathih13 commented on Oct 3, 2026

    @Mathih13
    ContributorAuthor

    This was generated by AI during triage.

    A second test failed at random, in the playerbots-durable job this time: playerbots_recovery::playerbots_recovery_records_a_controlled_quest_while_survival_takes_priority (tests/playerbots_recovery.rs:1588), on PR #60, run 37138754439, job 111249062662. The other playerbots-durable run for the same head passed. #60 does not touch recovery.

    The assert checks that health after one playerbots_fixture_runner_survival_hit is lower than before. If that hit uses the normal melee roll, a miss or dodge leaves health unchanged: the same pattern as the Mage test fixed in #58. The fix is the same: assert the hit outcome, or force the hit in the fixture.

  2. changed the title [-]test(playerbots): transfer refusal test fails at random in playerbots-composition-durable[/-] [+]test(playerbots): two tests fail at random in the durable jobs[/+] on Oct 3, 2026
  3. changed the title [-]test(playerbots): two tests fail at random in the durable jobs[/-] [+]A playerbots-durable test can fail at random on a missed or dodged fixture hit[/+] on Oct 8, 2026
  4. added
    P2normal
    bugSomething isn't working
    ready-for-agentComplete enough to build from the issue alone, by a person or their agent
    on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2normalbugSomething isn't workingready-for-agentComplete enough to build from the issue alone, by a person or their agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions