Bug 6969 - Memory leak during bundle tree restart 84/48284/11
authorAlexis de Talhouët <adetalhouet@inocybe.com>
Tue, 15 Nov 2016 18:55:33 +0000 (13:55 -0500)
committerTom Pantelis <tpanteli@brocade.com>
Thu, 17 Nov 2016 13:34:00 +0000 (13:34 +0000)
commit4db37f2ab0c8174d1990e2262cb466fe22352573
treefe9d5913cbeff4c7ff074e2a2dec1bdedb726d75
parent057b787289f7b909d7013c22ac73a1c91c860af8
Bug 6969 - Memory leak during bundle tree restart

There are two root causes for that memory leak:

-  Retention on BlueprintContainer when desotrying them before "quiescing"
them:
Restarting a set of bundles requires cooperation between them to avoid
having retention on services due to on-going call, processing.
As OSGi APIs don't provide such functionality, the Quiesce APIs where
created, ensuring all calls to be finished before actually shutting down
the bundle. Once the set of bundles are quiesced, e.g. shut down, they
can safely be destroyed.

- Retention on the TopoProcessingProviderImpl due to unreleased resources:
https://git.opendaylight.org/gerrit/#/c/48283/

Change-Id: I0af4a27ac7c87f1cc158313f0497158733a045a5
Signed-off-by: Alexis de Talhouët <adetalhouet@inocybe.com>
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/BlueprintBundleTracker.java
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/BlueprintContainerRestartServiceImpl.java