{"record":{"id":"795ef572daa7e593","repo":"apache/hadoop","slug":"einval","errorCode":"EINVAL","errorMessage":"Unable to determine the configured value for %s.","messagePattern":"Unable to determine the configured value for (.+?)\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/fuse-dfs/fuse_connect.c","lineNumber":140,"sourceCode":"    authConf = AUTH_CONF_UNKNOWN;\n  else if (!val)\n    authConf = AUTH_CONF_OTHER;\n  else if (!strcmp(val, \"kerberos\"))\n    authConf = AUTH_CONF_KERBEROS;\n  else\n    authConf = AUTH_CONF_OTHER;\n  free(val);\n  return authConf;\n}\n\nint fuseConnectInit(const char *nnUri, int port)\n{\n  int ret;\n\n  gTimerPeriod = FUSE_CONN_DEFAULT_TIMER_PERIOD;\n  ret = hdfsConfGetInt(HADOOP_FUSE_TIMER_PERIOD, &gTimerPeriod);\n  if (ret) {\n    fprintf(stderr, \"Unable to determine the configured value for %s.\",\n          HADOOP_FUSE_TIMER_PERIOD);\n    return -EINVAL;\n  }\n  if (gTimerPeriod < 1) {\n    fprintf(stderr, \"Invalid value %d given for %s.\\n\",\n          gTimerPeriod, HADOOP_FUSE_TIMER_PERIOD);\n    return -EINVAL;\n  }\n  gExpiryPeriod = FUSE_CONN_DEFAULT_EXPIRY_PERIOD;\n  ret = hdfsConfGetInt(HADOOP_FUSE_CONNECTION_TIMEOUT, &gExpiryPeriod);\n  if (ret) {\n    fprintf(stderr, \"Unable to determine the configured value for %s.\",\n          HADOOP_FUSE_CONNECTION_TIMEOUT);\n    return -EINVAL;\n  }\n  if (gExpiryPeriod < 1) {\n    fprintf(stderr, \"Invalid value %d given for %s.\\n\",\n          gExpiryPeriod, HADOOP_FUSE_CONNECTION_TIMEOUT);","sourceCodeStart":122,"sourceCodeEnd":158,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/fuse-dfs/fuse_connect.c#L122-L158","documentation":"fuse_dfs (the Hadoop FUSE mount) initializes its cached-connection layer in fuseConnectInit (fuse_connect.c:138-142). It reads the Hadoop configuration key hadoop.fuse.timer.period via libhdfs hdfsConfGetInt (default 5 seconds); a nonzero return — the key exists but its value cannot be parsed as an integer, or configuration loading itself failed — prints this message to stderr and aborts the mount with EINVAL.","triggerScenarios":"hdfs-site.xml or core-site.xml contains <name>hadoop.fuse.timer.period</name><value>5s</value> (non-numeric); HADOOP_CONF_DIR/CLASSPATH points to unparseable XML so the libhdfs config load fails; fuse_dfs launched from a minimal environment (fstab/systemd) that lacks the normal Hadoop env.","commonSituations":"Operators copy time-period style values ('5s', '5000ms') from other Hadoop configs into fuse keys; JAVA_HOME/CLASSPATH not exported into the mount context so configuration never loads.","solutions":["Set the value to a plain integer number of seconds: <value>5</value>.","Remove the property to fall back to the built-in default (5 seconds).","Verify config readability in the same environment: run `hdfs getconf -confKey hadoop.fuse.timer.period` as the mounting user.","Fix HADOOP_CONF_DIR/CLASSPATH for the fuse_dfs process and xmllint the XML files."],"exampleFix":"<!-- before -->\n<property><name>hadoop.fuse.timer.period</name><value>5s</value></property>\n\n<!-- after -->\n<property><name>hadoop.fuse.timer.period</name><value>5</value></property>","handlingStrategy":"validation","validationCode":"#!/bin/bash\n# pre-mount check: fuse keys must be integers when present\nbad=0\nfor k in hadoop.fuse.timer.period hadoop.fuse.connection.timeout; do\n  v=$(hdfs getconf -confKey \"$k\" 2>/dev/null)\n  if [ -n \"$v\" ] && ! [[ \"$v\" =~ ^-?[0-9]+$ ]]; then echo \"non-integer $k=$v\"; bad=1; fi\ndone\nexit $bad","typeGuard":null,"tryCatchPattern":null,"preventionTips":["fuse config values are plain integers (seconds) — never units like 5s.","Verify with `hdfs getconf -confKey` under the exact env/user that mounts.","Add the pre-mount config check to the mount script; fuse_dfs reads config once at startup."],"tags":["c","hadoop","fuse-dfs","libhdfs","configuration","mount"],"backgroundTag":"malformed-config-value","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}