Skip to content

Preserve teardown completion after an intermittent timeout race #1376

Closed

Description

@Chemaclass

The existing slow teardown acceptance test still fails intermittently on macOS Bash 3.2.57. A clean runtime from main at f33a9ac2c87ca7e181d76a4b3e65eddd3de8ea7a reproduced the failure during a repeated focused run. The timeout message is correct, but the marker written after tear_down sleeps for one second is absent.

./bashunit --simple --parallel --filter waits_for_a_slow_tear_down --repeat 30 tests/acceptance/bashunit_timeout_test.sh

The clean-main run failed after 14.39 seconds. Other repeated runs passed. The same check also failed during the full standalone suite while validating #1370. The test and timeout execution path are unchanged by that provider work, and the failure was reproduced independently of it. The root cause is not established.

#1344 replaced the short fixed grace with polling for up to two seconds. Investigate why a one-second teardown can still miss its marker without making a hanging teardown unbounded.

  • Identify the timeout or teardown race with a focused regression.
  • A timed-out body runs its teardown once and permits a one-second cleanup to finish.
  • A hanging cleanup remains bounded, and watchdog children do not delay output capture.
  • Validate the source and standalone runner on macOS Bash 3.2 and actual Bash 3.0, including repeated and parallel runs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions