Testing 4.0.0-alpha-1-rc1 and found an issue in the Monitor. It failed with:
2026-09-17T16:53:26,738 Thread[62] [next.InformationFetcher] ERROR: Error getting status from future
java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "java.util.Map.containsKey(Object)" because the return value of "org.apache.accumulo.core.spi.compaction.CompactionPlanner$InitParameters.getOptions()" is null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.accumulo.monitor.next.InformationFetcher.run(InformationFetcher.java:930)
at org.apache.accumulo.core.util.threads.Threads.lambda$createCriticalThread$0(Threads.java:76)
at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Map.containsKey(Object)" because the return value of "org.apache.accumulo.core.spi.compaction.CompactionPlanner$InitParameters.getOptions()" is null
at org.apache.accumulo.core.spi.compaction.RatioBasedCompactionPlanner.init(RatioBasedCompactionPlanner.java:186)
at org.apache.accumulo.server.compaction.CompactionPluginUtils.getConfiguredCompactionResourceGroups(CompactionPluginUtils.java:379)
at org.apache.accumulo.monitor.next.InformationFetcher$ConfiguredCompactionResourceGroupFetcher.run(InformationFetcher.java:504)
at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
... 2 more
java.lang.IllegalArgumentException: Group name 'user.small' is invalid. Valid names must match the pattern: ^[a-zA-Z]+(_?[a-zA-Z0-9])*$
at org.apache.accumulo.core.data.ResourceGroupId.validateGroupName(ResourceGroupId.java:55)
at org.apache.accumulo.core.data.ResourceGroupId.<init>(ResourceGroupId.java:46)
at org.apache.accumulo.core.data.ResourceGroupId.lambda$of$0(ResourceGroupId.java:66)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$0(BoundedLocalCache.java:2767)
at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2765)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2756)
at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:132)
at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:63)
at org.apache.accumulo.core.data.ResourceGroupId.of(ResourceGroupId.java:66)
at org.apache.accumulo.monitor.next.SystemInformation.createCompactionQueueSummary(SystemInformation.java:878)
at org.apache.accumulo.monitor.next.SystemInformation.finish(SystemInformation.java:1459)
at org.apache.accumulo.monitor.next.InformationFetcher.run(InformationFetcher.java:988)
at org.apache.accumulo.core.util.threads.Threads.lambda$createCriticalThread$0(Threads.java:76)
at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52)
at java.base/java.lang.Thread.run(Thread.java:840)
The Monitor failed after I made the following changes in the shell:
config -s compaction.service.ci.planner=org.apache.accumulo.core.spi.compaction.RatioBasedCompactionPlanner
config -s compaction.service.ci.planner.opts.groups=[{"group":"user_small","maxSize":"32M"},{"group":"user_large"}]
config -t ci -s table.compaction.dispatcher.opts.service=ci
The Monitor is using the Metric resource group tag value, user.small in this case, which doesn't exist. This is because Micrometer converts all underscores to periods in tag values by default.
Testing 4.0.0-alpha-1-rc1 and found an issue in the Monitor. It failed with:
The Monitor failed after I made the following changes in the shell:
The Monitor is using the Metric resource group tag value,
user.smallin this case, which doesn't exist. This is because Micrometer converts all underscores to periods in tag values by default.