You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Edit: Fixed in the 2.4.0 for the worker's container based on the channel. As the target of this ticket, we need to create a new container described above.
Under some circumstances (TTL, supervisor), when using custom plugins, the order of Pop and Push operations may be violating. When Pool takes the Worker, another worker, which waits on the channel mutex might be pushed into the channel. So, the Pop <-> Push relation might be broken and the worker won't be able to return a response.
Another issue here is if the user used TTL without requests, the killed processes will be on channel mutex:
Remove the duplicated slice with processes pointers from the worker_watcher.
Implement the Queue data structure which should support the following operations (all O(1)): Pop, Push, Lish (O(n)), Remove, Destroy. This data structure should also support the allocate_timeouts.
Integrate this data structure with worker_watcher.
Remove operation should be used to remove worker by its PID from the Queue without stacking dead processed on the mutex. The dead worker might be at any position in the Queue.
Rethink List() operation. We don't need to return a full process, but only the Memory, CPU, Execs, Time parts.
The text was updated successfully, but these errors were encountered:
rustatian
changed the title
[BUG] Current impl of the worker_watcher queue container may freeze Push operation under some circumstances
[BUG] Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
Jul 17, 2021
rustatian
changed the title
[BUG] Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
[BUG?] Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
Aug 2, 2021
rustatian
changed the title
[BUG?] Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
[BUG] Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
Sep 1, 2021
rustatian
changed the title
[BUG] Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
[💡FEATURE REQUEST]: Current impl of the worker_watcher queue container may violate Pop <-> Push operation under some circumstances
Feb 17, 2022
Edit: Fixed in the 2.4.0 for the worker's container based on the channel. As the target of this ticket, we need to create a new container described above.
Under some circumstances (TTL, supervisor), when using custom plugins, the order of
Pop
andPush
operations may be violating. When Pool takes the Worker, another worker, which waits on the channel mutex might be pushed into the channel. So, thePop
<->Push
relation might be broken and the worker won't be able to return a response.Another issue here is if the user used TTL without requests, the killed processes will be on channel mutex:
We need to do the following:
worker_watcher
.Queue
data structure which should support the following operations (all O(1)):Pop
,Push
,Lish
(O(n)),Remove
,Destroy
. This data structure should also support theallocate_timeouts
.worker_watcher
.Remove
operation should be used to remove worker by its PID from theQueue
without stacking dead processed on the mutex. The dead worker might be at any position in theQueue
.List()
operation. We don't need to return a full process, but only the Memory, CPU, Execs, Time parts.The text was updated successfully, but these errors were encountered: