05285: | Dead processes restarted by ContainerManager if container fails |
Category: Container Status: ClosedSeverity: HIGH Reported against release: 0.8 Fixed in release: 0.9
PROBLEM:If an Openwings Container dies (or is forcibly killed), the Container
Manager restarts all processes that have ever run in the container,
even those that have already stopped. ANALYSIS:The Container Manager does not fully update its internal object model
when a process stops. The Container Manager maintains an object for
each Container and an object for each process. The container object
also contains a reference to each of the process objects it contains.
When a process is stopped, the Container Manager removes the object
representing it from the main process list, but not from the container
object. When the container fails, the Container Manager checks the
container object to see what processes it needs to restart, and the old
process objects are still there.
The solution is to remove the process object from the container object
when a process stops. This also plugs a memory leak! |