apache/hadoop · error · IOException

Mount table state store is not available.

Error message

Mount table state store is not available.

What it means

MountTableRefresherService — the router's periodic mount-table cache refresher — obtains its MountTableStore via router.getStateStore().getRegisteredRecordStore(MountTableStore.class); a null registration throws IOException('Mount table state store is not available.'), meaning the router's state store driver never registered the mount table record store, so refresh cycles cannot run.

Source

Thrown at hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherService.java:205

  @Override
  protected void serviceStart() throws Exception {
    super.serviceStart();
  }

  @Override
  protected void serviceStop() throws Exception {
    super.serviceStop();
    clientCacheCleanerScheduler.shutdown();
    // remove and close all admin clients
    routerClientsCache.invalidateAll();
  }

  private MountTableStore getMountTableStore() throws IOException {
    MountTableStore mountTblStore =
        router.getStateStore().getRegisteredRecordStore(MountTableStore.class);
    if (mountTblStore == null) {
      throw new IOException("Mount table state store is not available.");
    }
    return mountTblStore;
  }

  /**
   * Refresh mount table cache of this router as well as all other routers.
   *
   * @throws StateStoreUnavailableException if the state store is not available.
   */
  public void refresh() throws StateStoreUnavailableException {
    RouterStore routerStore = router.getRouterStateManager();

    try {
      routerStore.loadCache(true);
    } catch (IOException e) {
      LOG.warn("RouterStore load cache failed,", e);
    }

View on GitHub (pinned to 2add963021)

Solutions

  1. Verify dfs.federation.router.store.driver and backend connectivity (ZK ensemble / DB) from the router host
  2. Check StateStoreService initialization logs — MountTableStore registers during state store init; fix any preceding errors
  3. Restart the router after state store recovery so the refresher can fetch the store
  4. For custom state store drivers, ensure MountTableStore is registered during initialization
Defensive patterns

Strategy: validation

Validate before calling

// Check the store is registered before enabling/running the refresher
MountTableStore store = router.getStateStore()
    .getRegisteredRecordStore(MountTableStore.class);
if (store == null) {
  throw new IOException(
      "MountTableStore not registered; state store driver/backend check required");
}

Prevention

When it happens

Trigger: The router's StateStoreService is not initialized or failed (dfs.federation.router.store.driver misconfigured, ZooKeeper/DB backend unreachable at startup), a custom driver lacks MountTableStore registration, or the refresher runs before the state store registered its record stores.

Common situations: State store backend outage during router startup; wrong driver class in router configuration; routers in clusters where the state store schema/records were only partially initialized.

Related errors


AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22). Data as JSON: /api/errors/4550b2172a489f80. Report an issue: GitHub.