{"record":{"id":"6a0982ddcf56bb66","repo":"apache/cassandra","slug":"invalid-specifiers-in-describe-expect-globalg","errorCode":null,"errorMessage":"Invalid specifiers in ${describe}; expect [GlobalGroup];[ExclusiveGroup] but got: ${input}","messagePattern":"Invalid specifiers in (.+?); expect \\[GlobalGroup\\];\\[ExclusiveGroup\\] but got: (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/service/accord/execution/AccordExecutor.java","lineNumber":813,"sourceCode":"                    {\n                        for (int j = 0 ; j < q0.size() ; ++j)\n                            snapshot.add(new TaskInfo(ifQueued, q.commandStoreId, q0.getSingle(j)));\n                    }\n                }\n            }\n            else\n            {\n                int commmandStoreId = t instanceof SafeTask ? ((SafeTask<?>) t).commandStore.id() : -1;\n                snapshot.add(new TaskInfo(ifCurrent, commmandStoreId, t));\n            }\n        }\n    }\n\n    private static long[] parseEnumParams(String input, String describe)\n    {\n        String[] specs = input.split(\";\");\n        if (specs.length != 2)\n            throw new IllegalArgumentException(\"Invalid specifiers in \" + describe + \"; expect [GlobalGroup];[ExclusiveGroup] but got: \" + input);\n        long[] result = new long[2];\n        result[0] = parseEnumParams(GlobalGroup::valueOf, specs[0], describe + \" for GlobalGroup\");\n        result[1] = parseEnumParams(ExclusiveGroup::valueOf, specs[1], describe + \" for ExclusiveGroup\");\n        return result;\n    }\n\n    private static long parseEnumParams(Function<String, ? extends Enum<?>> get, String input, String describe)\n    {\n        long result = 0;\n        for (String spec : input.split(\",\"))\n        {\n            if (spec.trim().isEmpty()) continue;\n\n            String[] split = spec.split(\":\");\n            if (split.length != 2)\n                throw new IllegalArgumentException(\"Invalid specifier \" + spec + \" in \" + describe + \": \" + input);\n\n            try","sourceCodeStart":795,"sourceCodeEnd":831,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/service/accord/execution/AccordExecutor.java#L795-L831","documentation":"AccordExecutor.parseEnumParams parses JVM-test/diagnostic flags of the form 'GlobalGroup-spec;ExclusiveGroup-spec' separated by exactly one semicolon. When the input does not contain exactly two semicolon-separated specifiers, it throws IllegalArgumentException describing the expected format. It is a strict input-format guard for internal tuning parameters like queue_active_limits.","triggerScenarios":"Passing a system property/argument such as -Dcassandra.acord.queue_active_limits with zero or more than one semicolons, e.g. 'flush:8' or 'a:1;b:2;c:3', to AccordExecutor configuration parsing.","commonSituations":"Typos when copying tuning flags; shell quoting stripping the semicolon (semicolons often need quoting in bash); adding an extra group specifier by mistake.","solutions":["Provide exactly two semicolon-separated parts: '<GlobalGroup-spec>;<ExclusiveGroup-spec>'.","Quote the value in your shell so semicolons are not interpreted: -Dcassandra.acord.queue_active_limits='load:8;local:4'.","Check each part parses as valid enum values (see error 1974 for per-part errors)."],"exampleFix":"// before\n-Dcassandra.acord.queue_active_limits=load:8\n// after\n-Dcassandra.acord.queue_active_limits=load:8;load:4","handlingStrategy":"validation","validationCode":"String v = System.getProperty(\"cassandra.acord.queue_active_limits\");\nif (v != null && v.split(\";\").length != 2) throw new IllegalArgumentException(\"expect <GlobalGroup>;<ExclusiveGroup>, got: \" + v);","typeGuard":null,"tryCatchPattern":"try { parseFlags(v); } catch (IllegalArgumentException e) { LOG.error(\"Bad queue_active_limits '{}': {}\", v, e.getMessage()); throw e; }","preventionTips":["Always quote semicolon-containing -D values in shell.","Keep a canonical example of the flag in runbooks.","Validate tuning flags in CI before deploying."],"tags":["accord","parsing","argument-format"],"backgroundTag":"invalid-argument-format","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}