Bug in Join.aggregate logic
Reported by bahuvrihi | February 20th, 2009 @ 08:38 AM
Currently the determinant of enquing the executable is whether or not the executable_queue has the specified round. This has a logical bug:
When the queue reaches the executable it will run it, but it will not discard the round array until there's a round to follow it.
def queue # :nodoc:
while @rounds.length > 1
queue = @rounds[0]
if queue.empty?
@rounds.shift
else
return queue
end
end
@rounds[0]
end
Until that time, the join will think it doesn't need to enque the executable (even if the round no longer has the executable in it). Checking if the round is empty doesn't work since, once it hits the top, new executables may be registered in it.
A dirty solution is to enque a round after the join executable. Gross since obviously this pollutes the queue. It's the quick patch for now.
Comments and changes to this ticket
-
bahuvrihi February 21st, 2009 @ 11:11 PM
- State changed from new to resolved
- Assigned user set to bahuvrihi
(from [600afc6ffe1d76b5c2ea378e93a4c1fd1a60b6e9]) fixed bug in aggregate join logic [#174 state:resolved responsible:bahuvrihi] http://github.com/bahuvrihi/tap/...
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
A framework for making configurable, file-based tasks and workflows.
People watching this ticket
Referenced by
- 174 Bug in Join.aggregate logic (from [600afc6ffe1d76b5c2ea378e93a4c1fd1a60b6e9]) fixed b...