Hi, a week ago we discovered an issue with the usage server version (4.9). After around two month from upgrading to 4.9.0 usage server stopped working and produced following error messages in /var/log/cloudstack/usage/usage.log:
ERROR [usage.dao.UsageDaoImpl] (Usage-Job-1:null) (logid:) error saving account to cloud_usage db java.lang.NullPointerException at com.cloud.usage.dao.UsageDaoImpl.saveAccounts(UsageDaoImpl.java:116) at com.cloud.usage.dao.UsageDaoImpl_EnhancerByCloudStack_330c46f7.CGLIB$saveAccounts$15(<generated>) at com.cloud.usage.dao.UsageDaoImpl_EnhancerByCloudStack_330c46f7_FastClassByCloudStack_80eceb8.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:122) at com.cloud.usage.dao.UsageDaoImpl_EnhancerByCloudStack_330c46f7.saveAccounts(<generated>) at com.cloud.usage.UsageManagerImpl.parse(UsageManagerImpl.java:516) at com.cloud.usage.UsageManagerImpl.runInContextInternal(UsageManagerImpl.java:384) at com.cloud.usage.UsageManagerImpl$1.runInContext(UsageManagerImpl.java:326) at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) at com.cloud.usage.UsageManagerImpl.run(UsageManagerImpl.java:323) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) ERROR [cloud.usage.UsageManagerImpl] (Usage-Job-1:null) (logid:) Usage Manager error com.cloud.utils.exception.CloudRuntimeException at com.cloud.usage.dao.UsageDaoImpl.saveAccounts(UsageDaoImpl.java:135) at com.cloud.usage.dao.UsageDaoImpl_EnhancerByCloudStack_330c46f7.CGLIB$saveAccounts$15(<generated>) at com.cloud.usage.dao.UsageDaoImpl_EnhancerByCloudStack_330c46f7_FastClassByCloudStack_80eceb8.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:122) at com.cloud.usage.dao.UsageDaoImpl_EnhancerByCloudStack_330c46f7.saveAccounts(<generated>) at com.cloud.usage.UsageManagerImpl.parse(UsageManagerImpl.java:516) at com.cloud.usage.UsageManagerImpl.runInContextInternal(UsageManagerImpl.java:384) at com.cloud.usage.UsageManagerImpl$1.runInContext(UsageManagerImpl.java:326) at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) at com.cloud.usage.UsageManagerImpl.run(UsageManagerImpl.java:323) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) This happened on our testing and prod environment on Ubuntu. We also tried to fix it with the migrate-dynamicroles.py script, but that didn't fixed it. The problem was gone after we did an Upgrade to 4.9.2. So if someone has this problem too then upgrade to 4.9.2. BR Alexander