Skip to content

test: polling watcher mid-sweep check fails across the CI matrix #1122

Closed

Description

@s2x

Problem

PollingMonitorWatcherTest::testFileModifiedInAlreadyScannedRegionTriggersReloadOnNextSweep failed in all nine PHP/Symfony matrix jobs in two CI attempts for #1108. The PR changes the max-requests strategy and its tests, not the polling watcher or this fixture.

CI run: https://github.com/crazy-goat/workerman-bundle/actions/runs/40942312309

Each job reports:

FAIL: lastMTime not updated after modifying a file in the already-scanned region

The same test passed in a local full suite on macOS. The latest prior master workflow run was green on 2026-10-26. The failure therefore needs investigation; the available evidence does not prove that it is only a test defect.

Where to start

  • tests/PollingMonitorWatcherTest.php:575-590
  • tests/Fixtures/polling_watcher_mid_sweep_runner.php:79-111
  • src/Reboot/FileMonitorWatcher/PollingMonitorWatcher.php:54-123

The fixture modifies file0.php, then checks after one tick of a new sweep. That tick has a 500-file budget. Directory iteration order is not guaranteed, so check whether file0.php is within the first 500 entries on the CI runner. Also check the watcher behavior and timestamp handling before changing the test.

When the test step fails, the artifact-name step is skipped and artifact upload also fails with Provided artifact name input during validation is empty. Preserve the coverage artifact with a valid name on failure.

Done when

  • The test and watcher behavior are verified on Linux without relying on filesystem iteration order.
  • All PHP/Symfony matrix jobs and ci-ok pass without skipping or weakening checks.
  • Coverage artifact upload has a valid name when tests fail.

Activity

  1. added a commit that references this issue on Oct 29, 2026
    454d37b
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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions