apache/hadoop · error
hdfsRead failed and set errno %d
Error message
hdfsRead failed and set errno %d
What it means
Error "hdfsRead failed and set errno %d " thrown in apache/hadoop.
Source
Thrown at hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs-tests/test_libhdfs_threaded.c:267
errno = 0;
EXPECT_UINT64_EQ(UINT64_C(0), readStats->totalBytesRead);
EXPECT_UINT64_EQ(UINT64_C(0), readStats->totalLocalBytesRead);
EXPECT_UINT64_EQ(UINT64_C(0), readStats->totalShortCircuitBytesRead);
hdfsFileFreeReadStatistics(readStats);
/* Verify that we can retrieve the hedged read metrics */
EXPECT_ZERO(hdfsGetHedgedReadMetrics(fs, &hedgedMetrics));
errno = 0;
EXPECT_UINT64_EQ(UINT64_C(0), hedgedMetrics->hedgedReadOps);
EXPECT_UINT64_EQ(UINT64_C(0), hedgedMetrics->hedgedReadOpsWin);
EXPECT_UINT64_EQ(UINT64_C(0), hedgedMetrics->hedgedReadOpsInCurThread);
hdfsFreeHedgedReadMetrics(hedgedMetrics);
/* TODO: implement readFully and use it here */
ret = hdfsRead(fs, file, tmp, sizeof(tmp));
if (ret < 0) {
ret = errno;
fprintf(stderr, "hdfsRead failed and set errno %d\n", ret);
return ret;
}
if (ret != expected) {
fprintf(stderr, "hdfsRead was supposed to read %d bytes, but "
"it read %d\n", ret, expected);
return EIO;
}
EXPECT_ZERO(hdfsFileGetReadStatistics(file, &readStats));
errno = 0;
EXPECT_UINT64_EQ((uint64_t)expected, readStats->totalBytesRead);
hdfsFileFreeReadStatistics(readStats);
EXPECT_ZERO(hdfsFileClearReadStatistics(file));
EXPECT_ZERO(hdfsFileGetReadStatistics(file, &readStats));
EXPECT_UINT64_EQ((uint64_t)0, readStats->totalBytesRead);
hdfsFileFreeReadStatistics(readStats);
EXPECT_ZERO(memcmp(paths->prefix, tmp, expected));
EXPECT_ZERO(hdfsCloseFile(fs, file));
View on GitHub (pinned to 2add963021)
Solutions
- Check errno value printed: common causes are EACCES (permissions), ENOENT (missing file), EIO (NameNode/DataNode unreachable).
- Verify the HDFS path exists and the test user has read permission before calling hdfsRead.
- Ensure the libhdfs client is connected to a live NameNode (check hdfsConnect succeeded earlier in the test).
When it happens
Trigger: Raised inside the threaded libhdfs test when hdfsRead returns -1 during concurrent read workload.
Common situations: Occurs in test_libhdfs_threaded when the cluster is down, the test file was not written first, or many threads race on the same file handle.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/33c32d7e05863c3e.
Report an issue: GitHub.