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