{"record":{"id":"018570c5c51d7664","repo":"apache/pulsar","slug":"invalid-allocator-name","errorCode":null,"errorMessage":"Invalid allocator name : ","messagePattern":"Invalid allocator name : ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/AllocatorStatsGenerator.java","lineNumber":43,"sourceCode":"import io.netty.buffer.PooledByteBufAllocator;\nimport java.util.ArrayList;\nimport java.util.stream.Collectors;\nimport org.apache.bookkeeper.mledger.impl.cache.RangeEntryCacheImpl;\nimport org.apache.pulsar.common.stats.AllocatorStats;\nimport org.apache.pulsar.common.stats.AllocatorStats.PoolArenaStats;\nimport org.apache.pulsar.common.stats.AllocatorStats.PoolChunkListStats;\nimport org.apache.pulsar.common.stats.AllocatorStats.PoolChunkStats;\nimport org.apache.pulsar.common.stats.AllocatorStats.PoolSubpageStats;\n\npublic class AllocatorStatsGenerator {\n    public static AllocatorStats generate(String allocatorName) {\n        PooledByteBufAllocator allocator;\n        if (\"default\".equals(allocatorName)) {\n            allocator = PooledByteBufAllocator.DEFAULT;\n        } else if (\"ml-cache\".equals(allocatorName)) {\n            allocator = RangeEntryCacheImpl.ALLOCATOR;\n        } else {\n            throw new IllegalArgumentException(\"Invalid allocator name : \" + allocatorName);\n        }\n\n        AllocatorStats stats = new AllocatorStats();\n        stats.directArenas = allocator.metric().directArenas().stream()\n            .map(AllocatorStatsGenerator::newPoolArenaStats)\n            .collect(Collectors.toList());\n        stats.heapArenas = allocator.metric().heapArenas().stream()\n            .map(AllocatorStatsGenerator::newPoolArenaStats)\n            .collect(Collectors.toList());\n\n        stats.numDirectArenas = allocator.metric().numDirectArenas();\n        stats.numHeapArenas = allocator.metric().numHeapArenas();\n        stats.numThreadLocalCaches = allocator.metric().numThreadLocalCaches();\n        stats.usedHeapMemory = allocator.metric().usedHeapMemory();\n        stats.usedDirectMemory = allocator.metric().usedDirectMemory();\n        stats.normalCacheSize = allocator.metric().normalCacheSize();\n        stats.smallCacheSize = allocator.metric().smallCacheSize();\n        return stats;","sourceCodeStart":25,"sourceCodeEnd":61,"githubUrl":"https://github.com/apache/pulsar/blob/820761864ed8e2a7d2e52dd9763ad2ae117c1395/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/AllocatorStatsGenerator.java#L25-L61","documentation":"Validation failure inside AllocatorStatsGenerator.generate: the requested Netty allocator name does not correspond to a known allocator, so its pooling metrics cannot be collected and the stats request is rejected with this sentinel message.","triggerScenarios":"Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/AllocatorStatsGenerator.java:43 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a valid allocator name (e.g., 'default', 'pooled', 'unpooled' as registered)","Register the custom allocator under that name before querying"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"820761864ed8e2a7d2e52dd9763ad2ae117c1395","analyzedAt":"2026-09-06T00:14:20.138Z","contentChangedAt":"2026-09-06T00:14:20.138Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}