## Problem TestEndToEndJobLifecycle was failing with two issues: 1. Race condition: Workers signaled ready before job was processed, receiving MsgNoWork instead of MsgJobAssign 2. getTask() didn't check pendingAcceptance - assigned-but-not-yet-accepted tasks returned nil ## Changes ### Test Fix (restart_recovery_test.go) - Replace single-shot select with retry loop that re-signals workers as ready - Handle both assignment and non-assignment messages correctly - Add 10ms delay between non-assignment messages to allow job processing - Use 2-second deadline with 100ms timeout intervals ### Scheduler Fix (hub.go) - Extend getTask() to check pendingAcceptance map after batch/service queues - Allows GetTask() to find tasks in 'assigned' state before acceptance - Maintains backward compatibility with existing queue/running lookups ## Testing make test now passes: 475 passed, 0 failed, 34 skipped |
||
|---|---|---|
| .. | ||
| auth.go | ||
| hub.go | ||
| pacing.go | ||
| plugin_quota.go | ||
| port_allocator.go | ||
| priority_queue.go | ||
| protocol.go | ||
| scheduler_conn.go | ||
| service_manager.go | ||
| service_manager_unix.go | ||
| service_manager_windows.go | ||
| service_templates.go | ||
| state.go | ||
| template.go | ||