> On March 19, 2019, 5:06 p.m., Benjamin Bannier wrote: > > src/csi/v0_volume_manager.cpp > > Line 120 (original), 142-144 (patched) > > <https://reviews.apache.org/r/70215/diff/2/?file=2132473#file2132473line142> > > > > Shouldn't we evaluate this when we actually send the operation in > > `_attachVolume`? I am worrying about the potential of interleaved, > > multistep transitions. > > > > Here and in all other handlers. > > Chun-Hung Hsiao wrote: > All of the methods prepended with an underscore are meant to be > compositional building blocks, and the public-facing functions (the ones > without underscores) are responsible to run the building block functions in a > volume's sequence. So as long as the sequence exists, the volume itself > should exist as well.
Ah I got what you mean. Because we add a `Deferred` in the sequence, it is possible that the `Deferred` is enqueued, then the volume itself is destructed before the the `Deferred` got dispatched. This should not be possible if we only destruct the volume in the sequence. > On March 19, 2019, 5:06 p.m., Benjamin Bannier wrote: > > src/csi/v0_volume_manager.cpp > > Lines 251 (patched) > > <https://reviews.apache.org/r/70215/diff/2/?file=2132473#file2132473line251> > > > > `Future<T>` can be constructed from a `Try<T, E>`, > > ``` > > return result; > > ``` But, `Future<ControlFlow<T>>` cannot be constructed from `Try<T, E>` ;) Dropping. - Chun-Hung ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/70215/#review213808 ----------------------------------------------------------- On March 15, 2019, 11:38 p.m., Chun-Hung Hsiao wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/70215/ > ----------------------------------------------------------- > > (Updated March 15, 2019, 11:38 p.m.) > > > Review request for mesos, Benjamin Bannier, Jie Yu, and Jan Schlicht. > > > Bugs: MESOS-9622 > https://issues.apache.org/jira/browse/MESOS-9622 > > > Repository: mesos > > > Description > ------- > > The attachment and publishment are implemented with internal helpers, > each individually deals with one steady and two transient states and > makes a proper CSI call to achieve its goal state. If the given volume > is not in the designed state, it would recursively call other helpers > to transition the volume to the designed state first. > > These helper functions are sequentialized through the volume's own > sequence in the public-facing functions to avoid racing operations on > the same volume. > > > Diffs > ----- > > src/csi/v0_volume_manager.cpp PRE-CREATION > src/csi/v0_volume_manager_process.hpp PRE-CREATION > > > Diff: https://reviews.apache.org/r/70215/diff/2/ > > > Testing > ------- > > make check > > > Thanks, > > Chun-Hung Hsiao > >