From: Matthias Dieter Wallnöfer Date: Mon, 10 Aug 2009 08:12:51 +0000 (+0200) Subject: torture/basic: in run_derefopen() the file could have been deleted before the last... X-Git-Tag: talloc-2.0.0~417 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8fcf1b988ad5c2338a75631696c32a31116708f1;p=thirdparty%2Fsamba.git torture/basic: in run_derefopen() the file could have been deleted before the last unlink Through a suggestion pointed out in bug #6622 the test file sometimes doesn't exist on the last turn anymore. So we haven't to fail here since it could have been deleted by a concurrent process (e.g. when the same test runs multiple times). Therefore also NT_STATUS_OBJECT_NAME_NOT_FOUND is an acceptable result. --- diff --git a/source4/torture/basic/base.c b/source4/torture/basic/base.c index ea7b6c08fd3..549db63b34f 100644 --- a/source4/torture/basic/base.c +++ b/source4/torture/basic/base.c @@ -693,8 +693,12 @@ static bool run_deferopen(struct torture_context *tctx, struct smbcli_state *cli } if (NT_STATUS_IS_ERR(smbcli_unlink(cli->tree, fname))) { - /* All until the last unlink will fail with sharing violation. */ - if (!NT_STATUS_EQUAL(smbcli_nt_error(cli->tree),NT_STATUS_SHARING_VIOLATION)) { + /* All until the last unlink will fail with sharing violation + but also the last request can fail since the file could have + been successfully deleted by another (test) process */ + NTSTATUS status = smbcli_nt_error(cli->tree); + if ((!NT_STATUS_EQUAL(status, NT_STATUS_SHARING_VIOLATION)) + && (!NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND))) { torture_comment(tctx, "unlink of %s failed (%s)\n", fname, smbcli_errstr(cli->tree)); correct = false; }