Pivotal Knowledge Base


The User GPADMIN is Not Allowed to Call getBlockLocalPathInfo


 Product  Version
 HAWQ  1.x


We can observe the following error message in HAWQ segment logs.

Error Message:

2017-01-26 00:00:04.280301, p590743, th140412451821600, ERROR cannot setup block reader for Block: [block pool ID: BP-575414680- block ID 1155800046_87905102] file /hawq_data/gpseg68/16385/62692/3867609 on Datanode: shbdhdwp019.gphd.local(
InputStreamImpl.cpp: 340: HdfsIOException: InputStreamImpl: Failed to get block local path information.
        @       Hdfs::Internal::InputStreamImpl::getBlockLocalPathInfo(Hdfs::Internal::LruMap<std::pair<long, std::string>, Hdfs::Internal::BlockLocalPathInfo>&, Hdfs::Internal::LocatedBlock const&)
        @       Hdfs::Internal::InputStreamImpl::setupBlockReader(bool)
        @       Hdfs::Internal::InputStreamImpl::readOneBlock(char*, int, bool)
        @       Hdfs::Internal::InputStreamImpl::readInternal(char*, int)
        @       Hdfs::Internal::InputStreamImpl::read(char*, int)
        @       hdfsRead
        @       gpfs_hdfs_read
        @       HdfsRead
        @       PostmasterMain
        @       main
        @       __libc_start_main
        @       Unknown
Caused by
RpcChannel.cpp: 732: Can't continue with getBlockLocalPathInfo() authorization. The user gpadmin is not allowed to call getBlockLocalPathInfo
        at org.apache.hadoop.hdfs.server.datanode.DataNode.checkBlockLocalPathAccess(DataNode.java:1002)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.getBlockLocalPathInfo(DataNode.java:1012)
        at org.apache.hadoop.hdfs.protocolPB.ClientDatanodeProtocolServerSideTranslatorPB.getBlockLocalPathInfo(ClientDatanodeProtocolServerSideTranslatorPB.java:112)


When using HAWQ, short-circuit reads are enabled by default and the following users are included in the default config. If a customer is running any HDFS operation with a user that is not a member of the dfs.block.local-path-access.user, then the job may fail.



Follow one of these two steps:

  • Add user to dfs.block.local-path-access.user.
  • Disable short-circuit reads (Not recommended if HAWQ is enabled in the cluster).  


Powered by Zendesk