Erased `Info` struct before unmouting volumes in Docker volume isolator.

Currently when `DockerVolumeIsolatorProcess::cleanup()` is called, we will
unmount the volume first, and if the unmount operation fails we will NOT
erase the container's `Info` struct from `infos`. This is problematic
because the remaining `Info` in `infos` will cause the reference count of
the volume is greater than 0, but actually the volume is not being used by
any containers. That means we may never get a chance to unmount this volume
on this agent, furthermore if it is an EBS volume, it cannot be used by any
tasks launched on any other agents since a EBS volume can only be attached
to one node at a time. The only workaround would manually unmount the volume.

So in this patch `DockerVolumeIsolatorProcess::cleanup()` is updated to erase
container's `Info` struct before unmounting volumes.

Review: https://reviews.apache.org/r/72516
1 file changed
tree: 7b73159d7871a6ef8f4fcac52ee3f612c606fbf0
  1. 3rdparty/
  2. CHANGELOG
  3. CMakeLists.txt
  4. Doxyfile
  5. LICENSE
  6. Makefile.am
  7. NOTICE
  8. README.md
  9. bin/
  10. bootstrap
  11. bootstrap.bat
  12. cmake/
  13. configure.ac
  14. docs/
  15. include/
  16. m4/
  17. mesos.pc.in
  18. mpi/
  19. site/
  20. src/
  21. support/
README.md

Apache Mesos

Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. It can run Hadoop, Jenkins, Spark, Aurora, and other frameworks on a dynamically shared pool of nodes.

Visit us at mesos.apache.org.

Mailing Lists

Documentation

Documentation is available in the docs/ directory. Additionally, a rendered HTML version can be found on the Mesos website's Documentation page.

Installation

Instructions are included on the Getting Started page.

License

Apache Mesos is licensed under the Apache License, Version 2.0.

For additional information, see the LICENSE and NOTICE files.