Skip to content

Intermittent Windows pytest process abort after passing suite #9

Open

Description

@lukisch

Summary

The Windows CI test process has intermittently aborted after pytest reports that the full suite passed. The failing output contains no Python traceback, so the cause is still unknown.

Observed runs

  • Workflow run 38197265396: Windows Python 3.10 job 114642610015 and Python 3.11 job 114642609617 each reported 104 passed and 6 subtests passed, then Fatal Python error: Aborted, <no Python frame>, and process exit code 3. Both logs report pytest 9.1.1, PySide6 6.12.0, and shiboken6 6.12.0. The Windows Python 3.12 job passed in that run.
  • Workflow run 38197967088 on diagnostic workflow head 3cae09e270c260d0cc7e98069656b684a9bd6233: Windows Python 3.10, 3.11, and 3.12 each completed with 104 passed and 6 subtests passed. The failure-triggered per-module probes were not triggered on this run.

Follow-up

PR #8 adds failure-triggered module-by-module process diagnostics for Windows Python 3.10/3.11 while preserving the full-suite exit status. It is diagnostic instrumentation, not a fix.

No root cause has been established. These observations do not establish a Qt/PySide regression or a product defect. On a recurrence, use the per-module output to narrow the failing process and retain the exact CI logs and dependency versions before proposing a code or dependency change.

Activity

  1. lukisch commented on Oct 12, 2026

    @lukisch
    CollaboratorAuthor

    New recurrence after diagnostic workflow merge

    Main-branch workflow run 38198268705 on merge commit c216db746d743b0d1f4d1a0f4934167ce0906f57 failed only in Windows Python 3.10 job 114645710798. Pytest reported 104 passed and 6 subtests passed, then the process emitted a native abort/access-violation message with no Python frame and exited -1073741819.

    The new failure-triggered diagnostics launched 15 separate test-module processes; all 15 exited 0. The original full-suite failure status was preserved. Windows Python 3.11 and 3.12 jobs passed on the same merge commit, and CodeQL run 38198268754 passed.

    This confirms the issue can recur at full-process shutdown/integration even when every module passes alone. It still does not identify the cause.

  2. lukisch commented on Oct 12, 2026

    @lukisch
    CollaboratorAuthor

    PR #10 (6cb7640cf8427dff03c3167d04f5f4e6b94afd54) adds a session-scoped QApplication fixture for the GUI tests. During fixture teardown, test-owned tray icons are hidden and detached from their context menus, top-level test widgets are closed and scheduled with deleteLater(), and queued DeferredDelete events are delivered before the fixture releases its application reference. Production code, thread behavior, and functional test assertions were left unchanged.

    The PR-head Windows matrix passed on Python 3.10, 3.11, and 3.12: each full run reported 104 passed and 6 subtests passed, with process exit code 0. The six source-platform smoke jobs and CodeQL checks also passed. Main run 38199629096 passed on merge commit ef14bc88528f09cb44dcccd183ae893ff0c396fc.

    The earlier native abort did not recur in these runs. These results do not establish its cause or prove it cannot recur, so this issue remains open for recurrence monitoring.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions