apache/hadoop · error · ReconfigurationException
Could not change property ${property} from '${oldVal}' to '$
Error message
Could not change property ${property} from '${oldVal}' to '${newVal}' What it means
ReconfigurableBase.reconfigureProperty() only applies properties the service whitelisted: isPropertyReconfigurable() (backed by getReconfigurableProperties()) must return true. Any other property takes the else branch and throws ReconfigurationException, whose message is built by constructMessage() as "Could not change property X from 'old' to 'new'" (parts omitted when values are null). Service subclasses can also raise it from reconfigurePropertyImpl() when applying the new value fails.
Source
Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ReconfigurableBase.java:238
* This method cannot be overridden, subclasses should instead override
* reconfigurePropertyImpl.
*/
@Override
public final void reconfigureProperty(String property, String newVal)
throws ReconfigurationException {
if (isPropertyReconfigurable(property)) {
LOG.info("changing property " + property + " to " + newVal);
synchronized(getConf()) {
getConf().get(property);
String effectiveValue = reconfigurePropertyImpl(property, newVal);
if (newVal != null) {
getConf().set(property, effectiveValue);
} else {
getConf().unset(property);
}
}
} else {
throw new ReconfigurationException(property, newVal,
getConf().get(property));
}
}
/**
* {@inheritDoc}
*
* Subclasses must override this.
*/
@Override
public abstract Collection<String> getReconfigurableProperties();
/**
* {@inheritDoc}
*
* Subclasses may wish to override this with a more efficient implementation.
*/View on GitHub (pinned to 2add963021)
Solutions
- Check svc.isPropertyReconfigurable(name) (or inspect getReconfigurableProperties()) before requesting the change and log/skip otherwise
- Fix the property-name typo so it matches the exact whitelisted key
- If the property is restart-only, apply the new value and restart the service instead of hot-reloading
- If you own the service subclass, add the key to getReconfigurableProperties() and implement a safe reconfigurePropertyImpl()
Example fix
// before
svc.reconfigureProperty("dfs.datanode.max.transfer.threads", "8192");
// throws ReconfigurationException if not whitelisted
// after
String prop = "dfs.datanode.max.transfer.threads";
if (svc.isPropertyReconfigurable(prop)) {
svc.reconfigureProperty(prop, "8192");
} else {
LOG.warn("{} is not hot-reconfigurable; restart required", prop);
} Defensive patterns
Strategy: validation
Validate before calling
if (svc.isPropertyReconfigurable(propName)) {
svc.reconfigureProperty(propName, newVal);
} else {
LOG.warn("{} is restart-only; schedule a service restart", propName);
} Try / catch
try {
svc.reconfigureProperty(prop, newVal);
} catch (ReconfigurationException e) {
// e.getProperty()/getNewValue()/getOldValue() identify the failing change
LOG.warn("Hot-reload rejected for {} (old={}, new={}); restart required",
e.getProperty(), e.getOldValue(), e.getNewValue());
} Prevention
- Keep a per-service list of hot-reconfigurable keys and validate requests against it
- Watch the daemon's ReconfigurationTask status/logs after each apply to catch per-property failures
- For restart-only keys, automate restart rather than attempting hot-reload
When it happens
Trigger: Calling reconfigureProperty(name, value) for a key not present in the service's getReconfigurableProperties() collection; attempting to unset (newVal null) a non-reconfigurable property; a subclass's reconfigurePropertyImpl rejecting the new value at apply time.
Common situations: Trying to hot-reload a restart-only setting (ports, hostnames, handler counts not on the whitelist); typo'd property name so it never matches the whitelist; assuming a key is reloadable merely because it exists in the XML config of a running daemon.
Related errors
- Another reconfiguration task is running.
- Not a valid Boolean value for {property} in reconfSlowPeerPa
- Not a valid Boolean value for {property}
- No directory is specified.
- No more entry in " + f
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/f5f66f98aa845b8c.
Report an issue: GitHub.