Skip to content

timeoutSec not enforced on Windows and #1636

@prods

Description

@prods

Problem Description
When timeoutSec is set on a DAG step, processes that exceed the timeout should be forcibly terminated. However, on Windows, some processes would continue running for hours even when timeoutSec was set (e.g., to 900 seconds).

Root Cause
The issue had two components:

  1. Blocking cmd.Wait(): The commandExecutor.Run() method blocked indefinitely on cmd.Wait() without listening to context cancellation. When the timeout expired, the process would not be killed because the code was stuck waiting for Wait() to return.

  2. Incomplete process termination on Windows: The Windows KillProcessGroup() function only killed the immediate process, leaving child processes (subprocess tree) orphaned and running.

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