apache/hadoop · error · IOException
cannot find BPOfferService for bpid={}
Error message
cannot find BPOfferService for bpid={} What it means
Error "cannot find BPOfferService for bpid={}" thrown in apache/hadoop.
Source
Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java:2345
/**
* @return the datanode's IPC port
*/
public int getIpcPort() {
return ipcServer.getListenerAddress().getPort();
}
/**
* get BP registration by blockPool id
* @return BP registration object
* @throws IOException on error
*/
@VisibleForTesting
public DatanodeRegistration getDNRegistrationForBP(String bpid)
throws IOException {
DataNodeFaultInjector.get().noRegistration();
BPOfferService bpos = blockPoolManager.get(bpid);
if(bpos==null || bpos.bpRegistration==null) {
throw new IOException("cannot find BPOfferService for bpid="+bpid);
}
return bpos.bpRegistration;
}
/**
* Creates either NIO or regular depending on socketWriteTimeout.
*/
public Socket newSocket() throws IOException {
return socketFactory.createSocket();
}
/**
* Connect to the NN. This is separated out for easier testing.
*/
DatanodeProtocolClientSideTranslatorPB connectToNN(
InetSocketAddress nnAddr) throws IOException {
return new DatanodeProtocolClientSideTranslatorPB(nnAddr, getConf());
}View on GitHub (pinned to 2add963021)
Solutions
- Confirm the block pool id is correct and that the DataNode has completed handshake/registration with that NameNode before issuing the command.
- Run refreshNamenodes and retry; the BPOfferService may not have been created yet for a newly added nameservice.
When it happens
Trigger: An operation references a block pool id for which no BPOfferService thread exists on this DataNode.
Common situations: No offer-service thread exists for the given block pool, typically after refreshNamenodes removed it or a race during shutdown. Verify the block pool configuration.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/e06ade6369504035.
Report an issue: GitHub.