Preventing Memory and Information LeakageIncinerator – Eliminating Stale References in Dynamic OSGi Applications
Résumé
Java class loaders are commonly used in application
servers to load, unload and update a set of classes as a unit.
However, unloading or updating a class loader can introduce
stale references to the objects of the outdated class loader. A
stale reference leads to a memory leak and, for an update,
to an inconsistency between the outdated classes and their
replacements. To detect and eliminate stale references, we propose
Incinerator, a Java virtual machine extension that introduces
the notion of an outdated class loader. Incinerator detects stale
references and sets them to null during a garbage collection cycle.
We evaluate Incinerator in the context of the OSGi framework
and show that Incinerator correctly detects and eliminates stale
references, including a bug in Knopflerfish. We also evaluate
the performance of Incinerator with the DaCapo benchmark on
VMKit and show that Incinerator has an overhead of at most
3.3%.
Domaines
Système d'exploitation [cs.OS]Origine | Fichiers éditeurs autorisés sur une archive ouverte |
---|
Loading...