You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Zhenhao Li (JIRA)" <ji...@apache.org> on 2018/03/05 15:16:00 UTC

[jira] [Created] (CLOUDSTACK-10315) Inconsistent debugging info in catch block

Zhenhao Li created CLOUDSTACK-10315:
---------------------------------------

             Summary: Inconsistent debugging info in catch block
                 Key: CLOUDSTACK-10315
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10315
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
            Reporter: Zhenhao Li
         Attachments: image-2018-03-05-09-59-19-369.png, image-2018-03-05-10-14-00-552.png, image-2018-03-05-10-14-25-802.png

We found that some logging statements have same log message, but one of them has stack trace info, the other one of them doesn't have. Maybe a possible reason is that they are code clone, developers changed one of them(add stack trace info) but forgot to change the other one. Here's the details of those logging statements we found:

 

 1.*"Moving on to the next host because " + h.toString() + " is unavailable"*,

_com.cloud.hypervisor.ovm3.resources.Ovm3FenceBuilder.*fenceOff()*,_

_com.cloud.ha.*SimulatorFencer()*_, 

There are two identical log messages in these two places, the latter one logged stack trace but the previous one did not.

!image-2018-03-05-09-59-19-369.png!

We can see that they are in different type of catch block, but when checking the logs they generated, maybe it's impossible to know the difference of them without stack trace. So maybe the stack traces info should also be added here?

 

2.*"Network rule Conflict"*

_org.apache.cloudstack.api.command.user.firewall.CreatePortForwardingRuleCmd.*create()*,_

_org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd.*create()*_

 

The previous one has these two logging statements:

s_logger.info("Network rule conflict: ", ex);

s_logger.trace("Network Rule Conflict: ", ex);

 

Comparing to the latter one which contains:

s_logger.info("Network rule conflict: " + ex.getMessage());

s_logger.trace("Network Rule Conflict: ", ex);

Maybe it's better to have consistent exception handling here?

 

3.*"Failed to take snapshot: "*

_org.apache.cloudstack.storage.snapshot.SnapshotServiceImpl.*takeSnapshot()*,_

_org.apache.cloudstack.storage.datastore.driver.ElastistorPrimaryDataStoreDriver.*takeSnapshot()*_

The previous one has catch block:

!image-2018-03-05-10-14-00-552.png!

and the latter one:

!image-2018-03-05-10-14-25-802.png!

We can see that the code snippers are almost the same except the logging statements.

Will it be better to change the latter one, to be consistent with the previous one?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)