Hi John,
Does this patch help?
Thanks,
Murali
On Wed, 23 Nov 2005, John Bent wrote:
>
> Hello,
>
> I'm only seeing pvfs2-fs-dump working successfully when the file system is
> empty. If I write any files to /mnt/pvfs2, then pvfs2-fs-dump -m
> /mnt/pvfs2/ gets stuck in an infinite loop*:
>
> Datafile Handle 0 appears to be missing; skipping!
> Datafile Handle 0 appears to be missing; skipping!
> ....
>
> If I pvfs2-rm the files, then pvfs2-fs-dump resumes working. I'm just
> running a basic two node cluster having accepted the default values
> generated by pvfs2-genconfig. I've seen this in both 1.3.0 as well as
> from cvs 1.3.1pre1-2005-11-17-190554.
>
> John
>
> * Ok, I looked at the code, it is not infinite. Just in a loop from 0 to
> 2981876. So does getattr_resp.attr.dfile_count have a bad value somehow?
> _______________________________________________
> PVFS2-users mailing list
> [email protected]
> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users
>
>
Index: src/apps/admin/pvfs2-fs-dump.c
===================================================================
RCS file: /anoncvs/pvfs2/src/apps/admin/pvfs2-fs-dump.c,v
retrieving revision 1.38
diff -u -r1.38 pvfs2-fs-dump.c
--- src/apps/admin/pvfs2-fs-dump.c 11 Nov 2005 21:30:57 -0000 1.38
+++ src/apps/admin/pvfs2-fs-dump.c 23 Nov 2005 19:25:39 -0000
@@ -459,7 +459,7 @@
for (i = 0; i < readdir_resp.pvfs_dirent_outcount; i++)
{
- int server_idx;
+ int server_idx, ret;
char *cur_file;
PVFS_handle cur_handle;
@@ -469,10 +469,15 @@
entry_ref.handle = cur_handle;
entry_ref.fs_id = cur_fs;
- PVFS_sys_getattr(entry_ref,
+ if ((ret = PVFS_sys_getattr(entry_ref,
PVFS_ATTR_SYS_ALL,
creds,
- &getattr_resp);
+ &getattr_resp)) != 0)
+ {
+ printf("Could not get attributes of handle %llu [%d]\n",
+ llu(cur_handle), ret);
+ continue;
+ }
if (handlelist_find_handle(cur_handle, &server_idx) < 0)
@@ -530,6 +535,7 @@
df_handles = (PVFS_handle *) malloc(df_count * sizeof(PVFS_handle));
if (df_handles == NULL)
{
+ printf("invalid value of number of datafiles = %d\n", df_count);
assert(0);
}
ret = PVFS_mgmt_get_dfile_array(mf_ref, creds, df_handles, df_count);
Index: src/client/sysint/sys-getattr.sm
===================================================================
RCS file: /anoncvs/pvfs2/src/client/sysint/sys-getattr.sm,v
retrieving revision 1.88
diff -u -r1.88 sys-getattr.sm
--- src/client/sysint/sys-getattr.sm 11 Nov 2005 21:31:00 -0000 1.88
+++ src/client/sysint/sys-getattr.sm 23 Nov 2005 19:25:39 -0000
@@ -903,7 +903,7 @@
/* special case for when users ask for dfile count */
if(attr->objtype == PVFS_TYPE_METAFILE &&
- sm_p->getattr.req_attrmask & PVFS_ATTR_SYS_DFILE_COUNT)
+ sm_p->getattr.req_attrmask & PVFS_ATTR_META_DFILES)
{
sysresp->attr.dfile_count = attr->u.meta.dfile_count;
}
_______________________________________________
PVFS2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users