Daan,

We have to temporarily revert the commit (looks like it exists in master branch 
only)


commit c031eb7d38200d680da85ef57367b21df3483c41

Author: Ding Yuan <yuan@eecg> 2014-04-14 14:02:03

Committer: Daan Hoogland <d...@onecht.net> 2014-04-14 23:07:15

CLOUDSTACK-6242: exception handling improvements


Or at least revert the changes done by the commit in ConfigurationServerImpl – 
the fix enabled mysql exception logging.  It causes following bugs on the RPM 
setup:

https://issues.apache.org/jira/browse/CLOUDSTACK-7039
https://issues.apache.org/jira/browse/CLOUDSTACK-7040
https://issues.apache.org/jira/browse/CLOUDSTACK-7041

https://issues.apache.org/jira/browse/CLOUDSTACK-7042


Why the fix has to be reverted:


ConfigurationServerImpl.SaveUser method is responsible for saving System and 
Admin default users. It runs on initial management server startup. The reason 
why exception have been swallowed before is – if you do install from RPM, the 
system users are inserted by some system script (can’t recall the name) invoked 
during the installation. This script is NOT executed when do dev build. Then 
upon the management server startup ConfigurationServerImpl tries to insert the 
same users again. It passes for the dev environment – as the users weren’t 
present yet – but fails for the QA. And the failure – mysqlexception – gets 
swallowed.


The correct fix would be:


  1.  Fix install scripts the way all default info – system users, default 
security groups, etc – are being inserted in the same manner for Dev and RPM 
(QA use/test this one) builds.
  2.  Re-enable the exception logging now.

And in the future, whoever does the changes to the exception logging/handling, 
please do more research on why things were done certain way to avoid such 
pitfalls. I’m not saying that not logging the exception is right, but just 
enabling them when they were previously disabled, or changing the exception 
logic, without investigation why it was done this way, can affect the rest of 
the code behavior. The fix would most likely involve much more than just 
changing the exception handling logic.

-Alena.

Reply via email to