The branch, master has been updated via afe78c2 autobuild: fixed the tuples in the retry_task via 2d66bb5 autobuild: cwd is needed on all command types via f6bc4c0 s4-rpmd: fixed a use after realloc bug via 4beff4d s4-dsdb: fail the transaction instead of asserting on error from 9cdebd0 autobuild: Avoid unnecessary chdir() calls.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit afe78c23ad4868b1c67a3aa855ad7f59d8475412 Author: Andrew Tridgell <tri...@samba.org> Date: Fri Oct 1 11:17:04 2010 -0700 autobuild: fixed the tuples in the retry_task Pair-Programmed-With: Jelmer Vernooij <jel...@samba.org> Autobuild-User: Andrew Tridgell <tri...@samba.org> Autobuild-Date: Fri Oct 1 18:22:22 UTC 2010 on sn-devel-104 commit 2d66bb51caf02c979f53688257dd33d7366b3ebc Author: Andrew Tridgell <tri...@samba.org> Date: Fri Oct 1 11:12:24 2010 -0700 autobuild: cwd is needed on all command types commit f6bc4c08b19f5615a49d281c0792c7fe4627e9bc Author: Andrew Tridgell <tri...@samba.org> Date: Fri Oct 1 10:26:49 2010 -0700 s4-rpmd: fixed a use after realloc bug we could use old_el after the base message had been re allocated, due to adding timestamps. We need to re-find the element before using it Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> commit 4beff4d7ba6709009ad81e3becb691b9d81e5611 Author: Andrew Tridgell <tri...@samba.org> Date: Fri Oct 1 10:24:46 2010 -0700 s4-dsdb: fail the transaction instead of asserting on error It is more useful to fail the transaction and give the user an error message than to assert when we have an error in the repl_meta_data module Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> ----------------------------------------------------------------------- Summary of changes: script/autobuild.py | 9 +++++---- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 22 ++++++++++++++++++---- 2 files changed, 23 insertions(+), 8 deletions(-) Changeset truncated at 500 lines: diff --git a/script/autobuild.py b/script/autobuild.py index be8006c..a2d2a2c 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -58,7 +58,8 @@ tasks = { ("test", "make test", "text/plain"), ], } -retry_task = [ '''set -e +retry_task = [ ( "retry", + '''set -e git remote add -t master master %s git fetch master while :; do @@ -68,7 +69,7 @@ retry_task = [ '''set -e git describe master/master > master.desc diff old_master.desc master.desc done - ''' % samba_master] + ''' % samba_master, "test/plain" ) ] def run_cmd(cmd, dir=".", show=None, output=False, checkfail=True): if show is None: @@ -78,9 +79,9 @@ def run_cmd(cmd, dir=".", show=None, output=False, checkfail=True): if output: return Popen([cmd], shell=True, stdout=PIPE, cwd=dir).communicate()[0] elif checkfail: - return check_call(cmd, shell=True) + return check_call(cmd, shell=True, cwd=dir) else: - return call(cmd, shell=True) + return call(cmd, shell=True, cwd=dir) class builder(object): diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index ebd005e..198bb80 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -2981,9 +2981,17 @@ static int replmd_replicated_apply_merge(struct replmd_replicated_request *ar) md_remote = replmd_replPropertyMetaData1_find_attid(rmd, DRSUAPI_ATTRIBUTE_name); if (md_remote) { md_local = replmd_replPropertyMetaData1_find_attid(&omd, DRSUAPI_ATTRIBUTE_name); - SMB_ASSERT(md_local); + if (!md_local) { + DEBUG(0,(__location__ ": No md_local in RPMD\n")); + return replmd_replicated_request_werror(ar, WERR_DS_DRA_INTERNAL_ERROR); + } if (replmd_replPropertyMetaData1_is_newer(md_local, md_remote)) { - SMB_ASSERT(ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0); + if (ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0) { + DEBUG(0,(__location__ ": DNs don't match in RPMD: %s %s\n", + ldb_dn_get_linearized(msg->dn), + ldb_dn_get_linearized(ar->search_msg->dn))); + return replmd_replicated_request_werror(ar, WERR_DS_DRA_INTERNAL_ERROR); + } /* TODO: Find appropriate local name (dn) for the object * and modify msg->dn appropriately */ @@ -4008,12 +4016,18 @@ linked_attributes[0]: has changed */ if (add_time_element(msg, "whenChanged", t) != LDB_SUCCESS) { talloc_free(tmp_ctx); - return LDB_ERR_OPERATIONS_ERROR; + return ldb_operr(ldb); } if (add_uint64_element(msg, "uSNChanged", seq_num) != LDB_SUCCESS) { talloc_free(tmp_ctx); - return LDB_ERR_OPERATIONS_ERROR; + return ldb_operr(ldb); + } + + old_el = ldb_msg_find_element(msg, attr->lDAPDisplayName); + if (old_el == NULL) { + talloc_free(tmp_ctx); + return ldb_operr(ldb); } ret = dsdb_check_single_valued_link(attr, old_el); -- Samba Shared Repository