Ah, yes. Now seeing this snippet I can explain the issue.

So, during "orchestrateTakeVolumeSnapshot(work.getVolumeId(), 
work.getPolicyId(), work.getSnapshotId(), account, work.isQuiesceVm());” if an 
exception is thrown, it is caught and ignored by 
VolumeServiceImpl.takeSnapshot(VolumeInfo):

@Override
public SnapshotInfo takeSnapshot(VolumeInfo volume) {
    SnapshotInfo snapshot = null;
    try {
        snapshot = snapshotMgr.takeSnapshot(volume);
    } catch (Exception e) {
        s_logger.debug("Take snapshot: " + volume.getId() + " failed", e);
    }

    return snapshot;
}

So, "return new Pair<JobInfo.Status, String>(JobInfo.Status.SUCCEEDED,  
_jobMgr.marshallResultObject(work.getSnapshotId()));” will return 
JobInfo.Status.SUCCEEDED even when an exception was thrown.

That said, I’m now getting a warning that 
VolumeApiServiceImpl.orchestrateTakeVolumeSnapshot(VmWorkTakeVolumeSnapshot) is 
never called, so I’m not sure if this method trace has changed since I reported 
the issue.

(FYI, I’ve copied this info into the ticket as well)

-Chris
--
Chris Suich
chris.su...@netapp.com<mailto:chris.su...@netapp.com>
NetApp Software Engineer
Data Center Platforms – Cloud Solutions
Citrix, Cisco & Red Hat

On Mar 18, 2014, at 9:11 AM, Alex Hitchins 
<alex.hitch...@shapeblue.com<mailto:alex.hitch...@shapeblue.com>> wrote:

All,

I'm looking at the following issue[0]. The reporter says in the second sentence 
the method is always returning success even when an exception occurs or 
otherwise fails. Looking at the code, if the inside call to 
orchestrateTakeVolumeSnapshot raises an exception, it should bubble up and not 
return the SUCCEEDED message surely?


   private Pair<JobInfo.Status, String> 
orchestrateTakeVolumeSnapshot(VmWorkTakeVolumeSnapshot work) throws Exception {
       Account account = _accountDao.findById(work.getAccountId());
       orchestrateTakeVolumeSnapshot(work.getVolumeId(), work.getPolicyId(), 
work.getSnapshotId(),
               account, work.isQuiesceVm());
       return new Pair<JobInfo.Status, String>(JobInfo.Status.SUCCEEDED,
               _jobMgr.marshallResultObject(work.getSnapshotId()));
   }

[0] https://issues.apache.org/jira/browse/CLOUDSTACK-5825
Need Enterprise Grade Support for Apache CloudStack?
Our CloudStack Infrastructure 
Support<http://shapeblue.com/cloudstack-infrastructure-support/> offers the 
best 24/7 SLA for CloudStack Environments.

Apache CloudStack Bootcamp training courses

**NEW!** CloudStack 4.2.1 training<http://shapeblue.com/cloudstack-training/>
18th-19th February 2014, Brazil. 
Classroom<http://shapeblue.com/cloudstack-training/>
17th-23rd March 2014, Region A. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>
24th-28th March 2014, Region B. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>
16th-20th June 2014, Region A. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>
23rd-27th June 2014, Region B. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>

This email and any attachments to it may be confidential and are intended 
solely for the use of the individual to whom it is addressed. Any views or 
opinions expressed are solely those of the author and do not necessarily 
represent those of Shape Blue Ltd or related companies. If you are not the 
intended recipient of this email, you must neither take any action based upon 
its contents, nor copy or show it to anyone. Please contact the sender if you 
believe you have received this email in error. Shape Blue Ltd is a company 
incorporated in England & Wales. ShapeBlue Services India LLP is a company 
incorporated in India and is operated under license from Shape Blue Ltd. Shape 
Blue Brasil Consultoria Ltda is a company incorporated in Brasil and is 
operated under license from Shape Blue Ltd. ShapeBlue is a registered trademark.

Reply via email to