{"record":{"id":"8fb258019189a88e","repo":"apache/hadoop","slug":"s13","errorCode":"S13","errorMessage":"Missing system property [{0}]","messagePattern":"Missing system property \\[(.+?)\\]","errorType":"exception","errorClass":"ServerException","httpStatus":null,"severity":"critical","filePath":"hadoop-hdfs-project/hadoop-hdfs-httpfs/src/main/java/org/apache/hadoop/lib/servlet/ServerWebApp.java","lineNumber":186,"sourceCode":"   * <p>\n   * This implementation looks for the following 2 properties:\n   * <ul>\n   *   <li>#SERVER_NAME#.http.hostname</li>\n   *   <li>#SERVER_NAME#.http.port</li>\n   * </ul>\n   *\n   * @return the host and port InetSocketAddress the\n   *         web server is listening to.\n   * @throws ServerException thrown\n   *         if any of the above 2 properties is not defined.\n   */\n  protected InetSocketAddress resolveAuthority() throws ServerException {\n    String hostnameKey = getName() + HTTP_HOSTNAME;\n    String portKey = getName() + HTTP_PORT;\n    String host = System.getProperty(hostnameKey);\n    String port = System.getProperty(portKey);\n    if (host == null) {\n      throw new ServerException(ServerException.ERROR.S13, hostnameKey);\n    }\n    if (port == null) {\n      throw new ServerException(ServerException.ERROR.S13, portKey);\n    }\n    try {\n      InetAddress add = InetAddress.getByName(host);\n      int portNum = Integer.parseInt(port);\n      return new InetSocketAddress(add, portNum);\n    } catch (UnknownHostException ex) {\n      throw new ServerException(ServerException.ERROR.S14, ex.toString(), ex);\n    }\n  }\n\n  /**\n   * Destroys the <code>ServletContextListener</code> which destroys\n   * the Server.\n   *\n   * @param event servelt context event.","sourceCodeStart":168,"sourceCodeEnd":204,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs-httpfs/src/main/java/org/apache/hadoop/lib/servlet/ServerWebApp.java#L168-L204","documentation":"ServerWebApp.resolveAuthority() builds the listen address from two system properties, '<name>.http.hostname' and '<name>.http.port' (for the default server: httpfs.http.hostname / httpfs.http.port). Error S13 ('Missing system property') is thrown during webapp initialization when the hostname property is null, and deployment aborts.","triggerScenarios":"ServerWebApp.contextInitialized -> resolveAuthority() finds System.getProperty('httpfs.http.hostname') == null; the JVM was started without the httpfs.* bootstrap properties, e.g. launching the war directly in an unbundled container or a test harness that skips them.","commonSituations":"Deploying httpfs.war into a standalone Tomcat that does not pass the -Dhttpfs.http.hostname/-Dhttpfs.http.port options the bundled scripts set; upgrade or custom launcher dropping the properties; misconfigured test setup.","solutions":["Start httpfs through its bundled launcher (httpfs.sh), which sets httpfs.http.hostname and httpfs.http.port","Or add the JVM properties manually, e.g. -Dhttpfs.http.hostname=0.0.0.0 and -Dhttpfs.http.port=14000 (0.0.0.0 binds all interfaces)","Verify the other bootstrap properties (httpfs.home.dir, config/log/temp dirs) are present too, they fail with related errors next","Restart the container after adding the properties"],"exampleFix":"# before\nexport CATALINA_OPTS=\"$CATALINA_OPTS\"   # no httpfs properties -> S13\n\n# after\nexport CATALINA_OPTS=\"$CATALINA_OPTS -Dhttpfs.http.hostname=0.0.0.0 -Dhttpfs.http.port=14000\"","handlingStrategy":"validation","validationCode":"if (System.getProperty(\"httpfs.http.hostname\") == null) {\n  throw new IllegalStateException(\"set -Dhttpfs.http.hostname=<host|0.0.0.0> before starting httpfs\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  serverWebApp.contextInitialized(event);\n} catch (ServerException ex) {\n  if (ex.getError() == ServerException.ERROR.S13) {\n    String missing = ex.getParams()[0].toString(); // the exact property name\n    log.error(\"missing bootstrap property: {}\", missing);\n  }\n  throw ex;\n}","preventionTips":["Manage httpfs JVM options as one unit (hostname + port + dirs) in configuration management","Use 0.0.0.0 when no specific interface is required","Add a container startup probe that asserts all httpfs.* system properties are set"],"tags":["httpfs","system-property","startup","network","configuration"],"backgroundTag":"missing-system-property","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}