[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-10315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhenhao Li updated CLOUDSTACK-10315:
------------------------------------
    Description: 
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?

 

  was:
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?


> 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
>            Priority: Minor
>              Labels: easyfix
>         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)

Reply via email to