In VCF Operations 9.x, cost calculations fail across data centers. When navigating to Infrastructure Operations ➔ Configurations ➔ Cost Drivers, the Cost Drivers tab displays the following error:
Server is busy. Please try again later. If issue still persists, contact the system administrator.
Following entries are found in /storage/log/vcops/log/bm-controller.log:
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "java.lang.Double.doubleValue()" because the return value of "com.vmware.vrbc.expenses.document.OSLicenseExpense.getRate()" is null
at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture.postFire(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Double.doubleValue()" because the return value of "com.vmware.vrbc.expenses.document.OSLicenseExpense.getRate()" is null
at com.vmware.vrbc.costengine.costcalculation.costdriver.server.LicensesCostDriver.getTotalCost(LicensesCostDriver.java:713) ~[?:?]
at com.vmware.vrbc.costengine.costcalculation.costdriver.server.LicensesCostDriver.lambda$calculate$5(LicensesCostDriver.java:173) ~[?:?]