Skip to content

Sub-minute job timeouts are reported as zero minutes #9527

Description

@MateehUllah

Description

When a job timeout is configured below 60 seconds, the job runner reports that the job timed out after 0 minutes.

The timeout handlers in packages/syft-job/src/syft_job/job_runner.py format the duration using integer division:

print(f" Job {job_name} timed out after {timeout // 60} minutes")

For example, a valid timeout of 30 seconds is displayed as 0 minutes.

How to Reproduce

  1. Set the job timeout to 30 seconds:

    export SYFT_DEFAULT_JOB_TIMEOUT_SECONDS=30
  2. Run a job that takes longer than 30 seconds.

  3. Wait for the job to time out.

  4. Observe the following message:

    Job <job_name> timed out after 0 minutes
    

Expected Behavior

Sub-minute timeouts should be reported in seconds, for example:

Job <job_name> timed out after 30 seconds

All job-execution timeout paths should use consistent, human-readable duration formatting.

Screenshots

Not applicable. The problem appears in the job runner’s console output.

System Information

  • OS: Platform-independent
  • OS Version: Not applicable
  • Language Version: Python
  • Package Manager Version: Not applicable
  • Browser: Not applicable
  • Browser Version: Not applicable

Additional Context

The same timeout // 60 formatting is used in multiple timeout-handling paths in job_runner.py. Tests should cover at least one timeout below 60 seconds and one timeout of 60 seconds or more.

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

    Type: Bug 🐛Some functionality not working in the codebase as intended

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions