The branch, v3-6-test has been updated via 21a6a9e s3:selftest: run the posix_s3.smb2.oplock tests via 4e9bbc2 s4:torture/smb2: remove samba specific stuff from smb2.oplock via 5eae982 s3:smb2_create: don't take 'state->te' as indication for "was_deferred" (bug #9196) via 60a4b69 s3:selftest: mark the driver_info_winreg tests knownfail. from dd8e980 Fix bug #9209 - Parse of invalid SMB2 create blob can cause smbd crash.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test - Log ----------------------------------------------------------------- commit 21a6a9ec045963000e31c5efe91135e021cd534c Author: Stefan Metzmacher <me...@samba.org> Date: Wed Sep 26 03:24:22 2012 +0200 s3:selftest: run the posix_s3.smb2.oplock tests metze Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Wed Sep 26 07:57:12 CEST 2012 on sn-devel-104 (silimar to commit 98d117a5424d62804b7cb3d8a9ad35e703fc158a) commit 4e9bbc2a4381d6e7a610a7ee3c5dfb1fc89701ac Author: Stefan Metzmacher <me...@samba.org> Date: Wed Sep 26 03:08:33 2012 +0200 s4:torture/smb2: remove samba specific stuff from smb2.oplock metze (cherry picked from commit 7a14f09f9cc14cfb6234175add1841faf751d51a) commit 5eae9829f206fa5ac169420d897c875fea5f2fc6 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Sep 26 03:04:20 2012 +0200 s3:smb2_create: don't take 'state->te' as indication for "was_deferred" (bug #9196) We always set state->te = NULL of TALLOC_FREE(state->te), before calling smbd_smb2_request_dispatch(), so open_was_deferred_smb2() always returned false, while dispatching it again. But it's remove_deferred_open_message_smb2_internal() which should reset this state. In developer mode validate_my_share_entries() did call smb_panic() before. metze (cherry picked from commit 4604219ceba96955b3c4bf6ab31aa70c11442d61) commit 60a4b69933509273c4923c5593f6eb3b5afa0c3b Author: Stefan Metzmacher <me...@samba.org> Date: Sat Sep 29 10:04:54 2012 +0200 s3:selftest: mark the driver_info_winreg tests knownfail. They only get executed when driver files are around. metze (similar to commit ef8e228a5b4952b51d9db6b28017142759f40d10) ----------------------------------------------------------------------- Summary of changes: source3/selftest/knownfail | 5 +++++ source3/selftest/tests.py | 2 +- source3/smbd/smb2_create.c | 5 ++++- source4/torture/smb2/oplock.c | 10 ---------- 4 files changed, 10 insertions(+), 12 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/selftest/knownfail b/source3/selftest/knownfail index d2cb953..bda1fe0 100644 --- a/source3/selftest/knownfail +++ b/source3/selftest/knownfail @@ -4,8 +4,13 @@ samba3.blackbox.failure # this is designed to fail, for testing our test infrast samba3.posix_s3.rap.printing # fails sometimes on sn-devel samba3.posix_s3.rpc.spoolss.*printserver.enum_printers_old # fails on some hosts due to timing issues ? samba3.posix_s3.rpc.spoolss.printer.*addprinterex.print_test # another intermittent failure +samba3.posix_s3.rpc.spoolss.printer.*addprinter.driver_info_winreg # knownfail or flapping? +samba3.posix_s3.rpc.spoolss.printer.*addprinterex.driver_info_winreg # knownfail or flapping? samba3.posix_s3.smb2.lock.*.rw-exclusive # another intermittent failure samba3.posix_s3.smb2.compound.*interim2 # wrong return code (STATUS_CANCELLED) +samba3.posix_s3.smb2.oplock.*batch12 +samba3.posix_s3.smb2.oplock.*batch20 +samba3.posix_s3.smb2.oplock.*stream1 .*driver.add_driver_timestamps # we only can store dates, not timestamps samba3.raw.mux.* #This test is flaky on the async lock time samba3.smbtorture_s3.*OPLOCK4 # fails sometimes on sn-devel diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 20fd709..028012c 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -162,7 +162,7 @@ raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", " "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file"] smb2 = ["smb2.lock", "smb2.read", "smb2.compound", "smb2.connect", "smb2.scan", "smb2.scanfind", - "smb2.bench-oplock"] + "smb2.bench-oplock", "smb2.oplock"] rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec", "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg", diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c index c6e3fc3..5a9044d 100644 --- a/source3/smbd/smb2_create.c +++ b/source3/smbd/smb2_create.c @@ -386,6 +386,7 @@ static void smbd_smb2_request_create_done(struct tevent_req *tsubreq) struct smbd_smb2_create_state { struct smbd_smb2_request *smb2req; struct smb_request *smb1req; + bool open_was_deferred; struct timed_event *te; struct tevent_immediate *im; struct timeval request_time; @@ -964,7 +965,7 @@ bool open_was_deferred_smb2(struct smbd_server_connection *sconn, uint64_t mid) return false; } /* It's not in progress if there's no timeout event. */ - if (!state->te) { + if (!state->open_was_deferred) { return false; } @@ -995,6 +996,7 @@ static void remove_deferred_open_message_smb2_internal(struct smbd_smb2_request "mid %llu\n", (unsigned long long)mid )); + state->open_was_deferred = false; /* Ensure we don't have any outstanding timer event. */ TALLOC_FREE(state->te); /* Ensure we don't have any outstanding immediate event. */ @@ -1238,6 +1240,7 @@ bool push_deferred_open_message_smb2(struct smbd_smb2_request *smb2req, &end_time, true) )); + state->open_was_deferred = true; state->te = event_add_timed(smb2req->sconn->smb2.event_ctx, state, end_time, diff --git a/source4/torture/smb2/oplock.c b/source4/torture/smb2/oplock.c index eeea036..ec263ac 100644 --- a/source4/torture/smb2/oplock.c +++ b/source4/torture/smb2/oplock.c @@ -2384,10 +2384,6 @@ static bool test_smb2_oplock_batch22(struct torture_context *tctx, int timeout = torture_setting_int(tctx, "oplocktimeout", 30); int te; - if (torture_setting_bool(tctx, "samba3", false)) { - torture_skip(tctx, "BATCH22 disabled against samba3\n"); - } - status = torture_smb2_testdir(tree1, BASEDIR, &h); torture_assert_ntstatus_ok(tctx, status, "Error creating directory"); @@ -2727,12 +2723,6 @@ static bool test_raw_oplock_stream1(struct torture_context *tctx, {&fname_default_stream, true, SMB2_OPLOCK_LEVEL_EXCLUSIVE, SMB2_OPLOCK_LEVEL_II}, }; - /* Only passes against windows at the moment. */ - if (torture_setting_bool(tctx, "samba3", false) || - torture_setting_bool(tctx, "samba4", false)) { - torture_skip(tctx, "STREAM1 disabled against samba3+4\n"); - } - fname_stream = talloc_asprintf(tctx, "%s:%s", fname_base, stream); fname_default_stream = talloc_asprintf(tctx, "%s%s", fname_base, default_stream); -- Samba Shared Repository