Thanks, Jason. At the first glance at create_image and remove_image I frankly wasn't sure it would be able to recover from a mid-operation failure. Now, I tested it and reread the code - it works like a charm. If we remove a partially added image then all artifacts will be clean up. I just need to make consistency groups behave the same way. One more question. I see that remove operation for images can report progress. Is it necessary for consistency groups? On Wed, May 11, 2016 at 8:12 AM, Jason Dillaman <jdillama@xxxxxxxxxx> wrote: > On Tue, May 10, 2016 at 12:25 PM, Victor Denisov <vdenisov@xxxxxxxxxxxx> wrote: >> I was writing unit tests for create_cg function when I realized that >> it wouldn't recover if we lost connection between >> cls_client::dir_add_cg and create_cg object. If create_cg doesn't >> happen then we are unable to repeat dir_add_cg. >> However since I implemented create_cg operation after create_image >> operation. create_image operation has the same issue. > > Correct - the recovery is to remove the image and re-create if you > have a failure creating the image. I think that is a valid solution > to the consistency groups as well. > >> So, my question is. Should I reimplement create_cg so that it can >> recover from connection loss to the cluster or should I keep it the >> same way create_image is implemented? > > There will not be an issue if the connection is lost -- there will > only be an issue if the rbd CLI (or whatever else is using the librbd > API) crashes / is stopped mid-operation. I am fine with matching the > create_image behavior because there is a recovery path. > >> Also, what is more preferable big pull request for all components of >> the feature - CRUD for consistency groups and snapshots, or split it >> into smaller pull requests - first merge CRUD operations then >> implement snapshots? > > Smaller patchsets are easier to review, test, and merge (especially as > review comments are addressed). > > -- > Jason -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html