Bug
duration is meant to flush the join buffer on a timer. Run uses select with a default branch that calls blocking GetRecord. While the input is idle, the goroutine is stuck in GetRecord and never observes ticker.C. The buffer only flushes when another record arrives or the input closes.
Where
internal/pkg/pipeline/task/join/join.go — select { default: GetRecord(...); case <-tickerCh: flush }.
Expected
A configured duration should flush the buffer when the timer fires, even if no further records have arrived.
Found while auditing task READMEs in #96.
Bug
durationis meant to flush the join buffer on a timer.Runusesselectwith adefaultbranch that calls blockingGetRecord. While the input is idle, the goroutine is stuck inGetRecordand never observesticker.C. The buffer only flushes when another record arrives or the input closes.Where
internal/pkg/pipeline/task/join/join.go—select { default: GetRecord(...); case <-tickerCh: flush }.Expected
A configured
durationshould flush the buffer when the timer fires, even if no further records have arrived.Found while auditing task READMEs in #96.