Oh my bad. I missed that assert. I changed the rmdirent (crdirent
as well) code to not do a two step process: read and then delete, to
a one step: just delete, and if there's a failure (such as ENOENT),
handle it at that point. So I changed the code in that
remove_directory_entry_failure call, but forgot to remove the
assert. I think removing the assert should at least fix that
failure. There's the DB_NOTFOUND errors that get printed that I'm
still not sure about.
-sam
On Jun 15, 2006, at 10:10 AM, Pete Wyckoff wrote:
> slang at mcs.anl.gov wrote on Thu, 15 Jun 2006 10:04 -0500:
>> Yeah this looks like my problem. Let me get back to you in a bit.
>
> I was just debugging the same thing. Simpler test case: start FS
> with no files in it, "pvfs2-rm /pvfs2/foo".
>
> Weird there's an assert right before the test, but this is old
> code.
>
> -- Pete
>
> static int rmdirent_remove_directory_entry_failure(PINT_server_op
> *s_op,
> job_status_s *js_p)
> {
> assert(js_p->error_code != -TROVE_ENOENT);
>
> switch (js_p->error_code)
> {
> case -TROVE_ENOENT:
> js_p->error_code = -PVFS_ENOENT;
> break;
> default:
> break;
> }
>
> gossip_lerr("unexpected error %d\n", js_p->error_code);
> return 1;
> }
>