{"record":{"id":"27f2705c46f0cdbc","repo":"apache/hadoop","slug":"invalid-jmx-query-against-namenode-uri","errorCode":null,"errorMessage":"Invalid JMX query: \"{}\" against NameNode URI: {}","messagePattern":"Invalid JMX query: \"(.+?)\" against NameNode URI: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-infra/src/main/java/org/apache/hadoop/tools/dynamometer/DynoInfraUtils.java","lineNumber":548,"sourceCode":"  /**\n   * Fetch a value from the launched NameNode's JMX.\n   *\n   * @param nameNodeProperties The set of properties containing information\n   *                           about the NameNode.\n   * @param jmxBeanQuery The JMX bean query to execute; should return a\n   *                     JMX property matching {@code jmxProperty}.\n   * @param property The name of the JMX property whose value should be polled.\n   * @return The value associated with the property.\n   */\n  static String fetchNameNodeJMXValue(Properties nameNodeProperties,\n      String jmxBeanQuery, String property) throws IOException {\n    URI nnWebUri = getNameNodeWebUri(nameNodeProperties);\n    URL queryURL;\n    try {\n      queryURL = new URL(nnWebUri.getScheme(), nnWebUri.getHost(),\n          nnWebUri.getPort(), \"/jmx?qry=\" + jmxBeanQuery);\n    } catch (MalformedURLException e) {\n      throw new IllegalArgumentException(\"Invalid JMX query: \\\"\" + jmxBeanQuery\n          + \"\\\" against \" + \"NameNode URI: \" + nnWebUri);\n    }\n    HttpURLConnection conn = (HttpURLConnection) queryURL.openConnection();\n    if (conn.getResponseCode() != 200) {\n      throw new IOException(\n          \"Unable to retrieve JMX: \" + conn.getResponseMessage());\n    }\n    InputStream in = conn.getInputStream();\n    JsonFactory fac = new JsonFactory();\n    JsonParser parser = fac.createParser(in);\n    if (parser.nextToken() != JsonToken.START_OBJECT\n        || parser.nextToken() != JsonToken.FIELD_NAME\n        || !parser.getCurrentName().equals(\"beans\")\n        || parser.nextToken() != JsonToken.START_ARRAY\n        || parser.nextToken() != JsonToken.START_OBJECT) {\n      throw new IOException(\n          \"Unexpected format of JMX JSON response for: \" + jmxBeanQuery);\n    }","sourceCodeStart":530,"sourceCodeEnd":566,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-infra/src/main/java/org/apache/hadoop/tools/dynamometer/DynoInfraUtils.java#L530-L566","documentation":"Error \"Invalid JMX query: \"{}\" against NameNode URI: {}\" thrown in apache/hadoop.","triggerScenarios":"A JMX query issued against the NameNode is syntactically invalid or targets an unsupported operation, so the HttpURLConnection to the /jmx endpoint cannot be opened correctly.","commonSituations":"See trigger scenarios.","solutions":["Fix the JMX query string so it is a valid query against the NameNode JMX endpoint (check bean name and attribute)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}