Skip to content

Windows: test_cell_group's killed-child partial-stdout case captures nothing (benchmarks/test_orchestrate.py) #958

Description

@lukstafi

Seen on the first Windows legs to get past setup after gh-ocannl-935 (dispatch runs https://github.com/lukstafi/ocannl-staging/actions/runs/34262512499 and 34266955741). The benchmarks/dune rule that runs python3 test_orchestrate.py fails one case on windows-latest:

FAIL: test_a_child_killed_mid_stream_preserves_its_partial_stdout (test.test_cell_group.CellGroupTest.test_a_child_killed_mid_stream_preserves_its_partial_stdout)
  File "…\_build\default\benchmarks\test\test_cell_group.py", line 113
    self.assertEqual(result.stdout, b"partial child output")
AssertionError: '' != b'partial child output'
Ran 209 tests in 19.763s — FAILED (failures=1, skipped=17)

(the second run additionally reported errors=2, so the case is not even deterministic there). The orchestrator's cell group kills a child mid-stream and expects the bytes it had already written to survive; on Windows the kill path (TerminateProcess through Popen.kill, or the process-group signal the POSIX path uses) apparently discards the pipe contents, or the child is killed before its write is flushed. 17 cases are already skipped on Windows, so the suite has a platform-skip mechanism; the question is whether this case's contract (partial stdout survives a kill) is achievable on Windows or should be skipped there with the reason recorded. Filed by the wave coordinator from the gh-935 verification runs.

Activity

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

    bugHighest priority

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions