• richardmaw-codethink's avatar
    mount: Wrap yields in context managers with try-finally · e3e72616
    richardmaw-codethink authored
    The terminator context will only clean up on a signal,
    so if another exception causes context manager cleanup
    then unmount won't be called unless it's part of another context manager
    or is wrapped in a try block's except or finally.
    Everywhere else's unmounts are handled by delegating to another context manager
    but these were what needed to be fixed.
    The change in buildstream/_fuse/mount.py would cause lockups
    since the build worker process still having a subprocess
    blocked its termination from completing
    which in turn caused the pipeline manager process to block indefinitely on it.
Last commit
Last update
__init__.py Loading commit data...
fuse.py Loading commit data...
hardlinks.py Loading commit data...
mount.py Loading commit data...