You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by el...@apache.org on 2012/07/14 02:53:08 UTC
svn commit: r1361461 - in
/hadoop/common/branches/branch-2/hadoop-hdfs-project: ./ hadoop-hdfs/
hadoop-hdfs/src/contrib/fuse-dfs/src/ hadoop-hdfs/src/main/java/
hadoop-hdfs/src/main/native/ hadoop-hdfs/src/main/webapps/datanode/
hadoop-hdfs/src/main/we...
Author: eli
Date: Sat Jul 14 00:53:07 2012
New Revision: 1361461
URL: http://svn.apache.org/viewvc?rev=1361461&view=rev
Log:
HDFS-3539. libhdfs code cleanups. Contributed by Colin Patrick McCabe
Added:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.h
- copied unchanged from r1361459, hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.h
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_connect.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_dfs.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_chown.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_release.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_init.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_options.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.h
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_read.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_write.c
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/secondary/ (props changed)
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/hdfs/ (props changed)
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project:r1361459
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs:r1361459
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Sat Jul 14 00:53:07 2012
@@ -143,6 +143,8 @@ Release 2.0.1-alpha - UNRELEASED
HDFS-3606. libhdfs: create self-contained unit test.
(Colin Patrick McCabe via eli)
+ HDFS-3539. libhdfs code cleanups. (Colin Patrick McCabe via eli)
+
OPTIMIZATIONS
HDFS-2982. Startup performance suffers when there are many edit log
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_connect.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_connect.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_connect.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_connect.c Sat Jul 14 00:53:07 2012
@@ -23,6 +23,8 @@
#include <limits.h>
#include <search.h>
+#include <stdio.h>
+#include <stdlib.h>
#define HADOOP_SECURITY_AUTHENTICATION "hadoop.security.authentication"
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_dfs.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_dfs.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_dfs.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_dfs.c Sat Jul 14 00:53:07 2012
@@ -22,6 +22,9 @@
#include "fuse_init.h"
#include "fuse_connect.h"
+#include <string.h>
+#include <stdlib.h>
+
int is_protected(const char *path) {
dfs_context *dfs = (dfs_context*)fuse_get_context()->private_data;
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_chown.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_chown.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_chown.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_chown.c Sat Jul 14 00:53:07 2012
@@ -21,7 +21,9 @@
#include "fuse_impls.h"
#include "fuse_connect.h"
- int dfs_chown(const char *path, uid_t uid, gid_t gid)
+#include <stdlib.h>
+
+int dfs_chown(const char *path, uid_t uid, gid_t gid)
{
TRACE1("chown", path)
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_release.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_release.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_release.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_impls_release.c Sat Jul 14 00:53:07 2012
@@ -21,6 +21,8 @@
#include "fuse_file_handle.h"
#include "fuse_connect.h"
+#include <stdlib.h>
+
/**
* release a fuse_file_info structure.
*
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_init.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_init.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_init.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_init.c Sat Jul 14 00:53:07 2012
@@ -16,14 +16,16 @@
* limitations under the License.
*/
-#include <strings.h>
-
#include "fuse_dfs.h"
#include "fuse_init.h"
#include "fuse_options.h"
#include "fuse_context_handle.h"
#include "fuse_connect.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
// Hacked up function to basically do:
// protectedpaths = split(options.protected,':');
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_options.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_options.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_options.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/contrib/fuse-dfs/src/fuse_options.c Sat Jul 14 00:53:07 2012
@@ -16,11 +16,12 @@
* limitations under the License.
*/
+#include "fuse_context_handle.h"
#include "fuse_dfs.h"
#include "fuse_options.h"
-#include <getopt.h>
-#include "fuse_context_handle.h"
+#include <getopt.h>
+#include <stdlib.h>
void print_options() {
printf("options:\n"
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java:r1361459
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/native:r1361459
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.c Sat Jul 14 00:53:07 2012
@@ -19,6 +19,8 @@
#include "hdfs.h"
#include "hdfsJniHelper.h"
+#include <stdio.h>
+#include <string.h>
/* Some frequently used Java paths */
#define HADOOP_CONF "org/apache/hadoop/conf/Configuration"
@@ -47,6 +49,50 @@
#define KERBEROS_TICKET_CACHE_PATH "hadoop.security.kerberos.ticket.cache.path"
+// Bit fields for hdfsFile_internal flags
+#define HDFS_FILE_SUPPORTS_DIRECT_READ (1<<0)
+
+tSize readDirect(hdfsFS fs, hdfsFile f, void* buffer, tSize length);
+
+/**
+ * The C equivalent of org.apache.org.hadoop.FSData(Input|Output)Stream .
+ */
+enum hdfsStreamType
+{
+ UNINITIALIZED = 0,
+ INPUT = 1,
+ OUTPUT = 2,
+};
+
+/**
+ * The 'file-handle' to a file in hdfs.
+ */
+struct hdfsFile_internal {
+ void* file;
+ enum hdfsStreamType type;
+ int flags;
+};
+
+int hdfsFileIsOpenForRead(hdfsFile file)
+{
+ return (file->type == INPUT);
+}
+
+int hdfsFileIsOpenForWrite(hdfsFile file)
+{
+ return (file->type == OUTPUT);
+}
+
+int hdfsFileUsesDirectRead(hdfsFile file)
+{
+ return !!(file->flags & HDFS_FILE_SUPPORTS_DIRECT_READ);
+}
+
+void hdfsFileDisableDirectRead(hdfsFile file)
+{
+ file->flags &= ~HDFS_FILE_SUPPORTS_DIRECT_READ;
+}
+
/**
* hdfsJniEnv: A wrapper struct to be used as 'value'
* while saving thread -> JNIEnv* mappings
@@ -2182,7 +2228,7 @@ getFileInfoFromStat(JNIEnv *env, jobject
"FileStatus::getModificationTime");
return -1;
}
- fileInfo->mLastMod = (tTime) (jVal.j / 1000);
+ fileInfo->mLastMod = jVal.j / 1000;
if (invokeMethod(env, &jVal, &jExc, INSTANCE, jStat,
HADOOP_STAT, "getAccessTime", "()J") != 0) {
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.h
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.h?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.h (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs.h Sat Jul 14 00:53:07 2012
@@ -19,18 +19,10 @@
#ifndef LIBHDFS_HDFS_H
#define LIBHDFS_HDFS_H
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <errno.h>
-
-#include <jni.h>
+#include <errno.h> /* for EINTERNAL, etc. */
+#include <fcntl.h> /* for O_RDONLY, O_WRONLY */
+#include <stdint.h> /* for uint64_t, etc. */
+#include <time.h> /* for time_t */
#ifndef O_RDONLY
#define O_RDONLY 1
@@ -46,10 +38,10 @@
/** All APIs set errno to meaningful values */
+
#ifdef __cplusplus
extern "C" {
#endif
-
/**
* Some utility decls used in libhdfs.
*/
@@ -67,33 +59,37 @@ extern "C" {
/**
* The C reflection of org.apache.org.hadoop.FileSystem .
*/
- typedef void* hdfsFS;
-
+ struct hdfs_internal;
+ typedef struct hdfs_internal* hdfsFS;
+ struct hdfsFile_internal;
+ typedef struct hdfsFile_internal* hdfsFile;
+
/**
- * The C equivalent of org.apache.org.hadoop.FSData(Input|Output)Stream .
+ * Determine if a file is open for read.
+ *
+ * @param file The HDFS file
+ * @return 1 if the file is open for read; 0 otherwise
*/
- enum hdfsStreamType
- {
- UNINITIALIZED = 0,
- INPUT = 1,
- OUTPUT = 2,
- };
+ int hdfsFileIsOpenForRead(hdfsFile file);
-
- // Bit fields for hdfsFile_internal flags
- #define HDFS_FILE_SUPPORTS_DIRECT_READ (1<<0)
+ /**
+ * Determine if a file is open for write.
+ *
+ * @param file The HDFS file
+ * @return 1 if the file is open for write; 0 otherwise
+ */
+ int hdfsFileIsOpenForWrite(hdfsFile file);
/**
- * The 'file-handle' to a file in hdfs.
+ * Disable the direct read optimization for a file.
+ *
+ * This is mainly provided for unit testing purposes.
+ *
+ * @param file The HDFS file
*/
- struct hdfsFile_internal {
- void* file;
- enum hdfsStreamType type;
- uint32_t flags;
- };
- typedef struct hdfsFile_internal* hdfsFile;
-
+ void hdfsFileDisableDirectRead(hdfsFile file);
+
/**
* hdfsConnectAsUser - Connect to a hdfs file system as a specific user
* Connect to the hdfs.
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_read.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_read.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_read.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_read.c Sat Jul 14 00:53:07 2012
@@ -18,6 +18,9 @@
#include "hdfs.h"
+#include <stdio.h>
+#include <stdlib.h>
+
int main(int argc, char **argv) {
if (argc != 4) {
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_test.c Sat Jul 14 00:53:07 2012
@@ -17,8 +17,15 @@
*/
#include "hdfs.h"
+#include "hdfs_test.h"
-tSize readDirect(hdfsFS fs, hdfsFile f, void* buffer, tSize length);
+#include <inttypes.h>
+#include <jni.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
void permission_disp(short permissions, char *rtr) {
rtr[9] = '\0';
@@ -53,6 +60,9 @@ void permission_disp(short permissions,
}
int main(int argc, char **argv) {
+ char buffer[32];
+ tSize num_written_bytes;
+
hdfsFS fs = hdfsConnectNewInstance("default", 0);
if(!fs) {
fprintf(stderr, "Oops! Failed to connect to hdfs!\n");
@@ -77,7 +87,7 @@ int main(int argc, char **argv) {
exit(-1);
}
fprintf(stderr, "Opened %s for writing successfully...\n", writePath);
- tSize num_written_bytes =
+ num_written_bytes =
hdfsWrite(fs, writeFile, (void*)fileContents, strlen(fileContents)+1);
if (num_written_bytes != strlen(fileContents) + 1) {
fprintf(stderr, "Failed to write correct number of bytes - expected %d, got %d\n",
@@ -127,6 +137,13 @@ int main(int argc, char **argv) {
exit(-1);
}
+ if (!hdfsFileIsOpenForRead(readFile)) {
+ fprintf(stderr, "hdfsFileIsOpenForRead: we just opened a file "
+ "with O_RDONLY, and it did not show up as 'open for "
+ "read'\n");
+ exit(-1);
+ }
+
fprintf(stderr, "hdfsAvailable: %d\n", hdfsAvailable(fs, readFile));
tOffset seekPos = 1;
@@ -144,7 +161,7 @@ int main(int argc, char **argv) {
}
fprintf(stderr, "Current position: %ld\n", currentPos);
- if ((readFile->flags & HDFS_FILE_SUPPORTS_DIRECT_READ) == 0) {
+ if (!hdfsFileUsesDirectRead(readFile)) {
fprintf(stderr, "Direct read support incorrectly not detected "
"for HDFS filesystem\n");
exit(-1);
@@ -152,11 +169,31 @@ int main(int argc, char **argv) {
fprintf(stderr, "Direct read support detected for HDFS\n");
- // Clear flags so that we really go through slow read path
- readFile->flags &= ~HDFS_FILE_SUPPORTS_DIRECT_READ;
+ // Test the direct read path
+ if(hdfsSeek(fs, readFile, 0)) {
+ fprintf(stderr, "Failed to seek %s for reading!\n", readPath);
+ exit(-1);
+ }
+ memset(buffer, 0, sizeof(buffer));
+ tSize num_read_bytes = hdfsRead(fs, readFile, (void*)buffer,
+ sizeof(buffer));
+ if (strncmp(fileContents, buffer, strlen(fileContents)) != 0) {
+ fprintf(stderr, "Failed to read (direct). Expected %s but got %s (%d bytes)\n",
+ fileContents, buffer, num_read_bytes);
+ exit(-1);
+ }
+ fprintf(stderr, "Read (direct) following %d bytes:\n%s\n",
+ num_read_bytes, buffer);
+ if (hdfsSeek(fs, readFile, 0L)) {
+ fprintf(stderr, "Failed to seek to file start!\n");
+ exit(-1);
+ }
+
+ // Disable the direct read path so that we really go through the slow
+ // read path
+ hdfsFileDisableDirectRead(readFile);
- static char buffer[32];
- tSize num_read_bytes = hdfsRead(fs, readFile, (void*)buffer,
+ num_read_bytes = hdfsRead(fs, readFile, (void*)buffer,
sizeof(buffer));
fprintf(stderr, "Read following %d bytes:\n%s\n",
num_read_bytes, buffer);
@@ -168,24 +205,6 @@ int main(int argc, char **argv) {
fprintf(stderr, "Read following %d bytes:\n%s\n",
num_read_bytes, buffer);
- if (hdfsSeek(fs, readFile, 0L)) {
- fprintf(stderr,
- "Failed to seek to file start for direct read test!\n");
- exit(-1);
- }
-
- readFile->flags |= HDFS_FILE_SUPPORTS_DIRECT_READ;
-
- memset(buffer, 0, strlen(fileContents + 1));
- num_read_bytes = hdfsRead(fs, readFile, (void*)buffer,
- sizeof(buffer));
- if (strncmp(fileContents, buffer, strlen(fileContents)) != 0) {
- fprintf(stderr, "Failed to read (direct). Expected %s but got %s (%d bytes)\n",
- fileContents, buffer, num_read_bytes);
- exit(-1);
- }
- fprintf(stderr, "Read (direct) following %d bytes:\n%s\n",
- num_read_bytes, buffer);
hdfsCloseFile(fs, readFile);
// Test correct behaviour for unsupported filesystems
@@ -195,34 +214,18 @@ int main(int argc, char **argv) {
exit(-1);
}
- tSize num_written_bytes = hdfsWrite(lfs, localFile,
- (void*)fileContents,
- strlen(fileContents) + 1);
+ num_written_bytes = hdfsWrite(lfs, localFile, (void*)fileContents,
+ strlen(fileContents) + 1);
hdfsCloseFile(lfs, localFile);
localFile = hdfsOpenFile(lfs, writePath, O_RDONLY, 0, 0, 0);
- if (localFile->flags & HDFS_FILE_SUPPORTS_DIRECT_READ) {
+ if (hdfsFileUsesDirectRead(localFile)) {
fprintf(stderr, "Direct read support incorrectly detected for local "
"filesystem\n");
exit(-1);
}
- memset(buffer, 0, strlen(fileContents + 1));
- int result = readDirect(lfs, localFile, (void*)buffer, sizeof(buffer));
- if (result != -1) {
- fprintf(stderr, "Expected error from local direct read not seen!\n");
- exit(-1);
- }
-
- if (errno != ENOTSUP) {
- fprintf(stderr, "Error code not correctly set to ENOTSUP, was %d!\n",
- errno);
- exit(-1);
- }
-
- fprintf(stderr, "Expected exception thrown for unsupported direct read\n");
-
hdfsCloseFile(lfs, localFile);
}
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_write.c
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_write.c?rev=1361461&r1=1361460&r2=1361461&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_write.c (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/hdfs_write.c Sat Jul 14 00:53:07 2012
@@ -16,10 +16,12 @@
* limitations under the License.
*/
-#include <limits.h>
-
#include "hdfs.h"
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
int main(int argc, char **argv) {
if (argc != 4) {
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode:r1361459
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs:r1361459
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/secondary/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/secondary:r1361459
Propchange: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/hdfs/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/hdfs:r1361459