Committed a fix Phil.  Thanks!

-sam

On Jun 15, 2007, at 11:12 AM, Phil Carns wrote:

This is a very small patch- it just initializes a size variable in sys-create.sm before it gets inserted into the attribute cache. I think this bug appeared in trunk sometime after the 1.6.3 release.

The simplest way that I found to trigger the problem was with a test program (compiled without large file support) that created a new file by calling open() in append mode. On some machines this would result in an EFBIG error code from the open. The problem was that sys-create would insert a garbage size (something very large) into the acache, and the subsequent getattr used to set the file pointer would find the offset to be larger than 2 GB. The kernel interpreted this as a problem since the application was not large file aware. Subsequent listings on the command line etc. would show that the file was really just had a size of zero as expected.

-Phil

Index: pvfs2_src/src/client/sysint/sys-create.sm
===================================================================
--- pvfs2_src/src/client/sysint/sys-create.sm   (revision 3582)
+++ pvfs2_src/src/client/sysint/sys-create.sm   (revision 3583)
@@ -899,7 +899,7 @@
                           job_status_s *js_p)
 {
     PVFS_object_ref metafile_ref;
-    PVFS_size tmp_size;
+    PVFS_size tmp_size = 0;
     int ret;

     gossip_debug(GOSSIP_CLIENT_DEBUG, "create state: cleanup\n");
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to