[SCM] Samba Shared Repository - branch v4-7-stable updated
Karolin Seeger
kseeger at samba.org
Fri Dec 22 21:26:11 UTC 2017
The branch, v4-7-stable has been updated
via 4b1b5b1 VERSION: Disable GIT_SNAPSHOT for the 4.7.4 release.
via 437395d WHATSNEW: Add release notes for Samba 4.7.4.
via 237bead s4:kdc: only map SDB_ERR_NOT_FOUND_HERE to HDB_ERR_NOT_FOUND_HERE
via 8be0198 s3:smb2_server: allow logoff, close, unlock, cancel and echo on expired sessions
via 2108b10 s3:smbd: return the correct error for cancelled SMB2 notifies on expired sessions
via b5e8614 s4:torture: add smb2.session.expire2 test
via 3648ab0 g_lock: fix cleanup of stale entries in g_lock_trylock()
via 7249bc1 dns_server: Use the indexed "name" attribute in wildcard lookup
via 6c5481b dns_server: Do not look for a wildcard for @
via 7d60443 dns_server: Do the exact match query first, then do the wildcard lookup
via 2cd8389 ldb: Release 1.2.3
via 82764c9 ldb: Intersect the index from SCOPE_ONELEVEL with the index for the search expression
via 5f51561 ldb_tdb: Provide struct ltdb_private to index routines
via 6ddcbfd selftest: Do not use dn= filter string
via edc0c99 s4:samba: Fix default to be running samba as a deamon
via 1eb0844 messaging: Always register the unique id
via 40ac029 winbindd: idmap_rid: error code for failing id-to-sid mapping request
via e92edf0 winbindd: idmap_rid: don't rely on the static domain list
via 5724d65 winbindd: pass domain SID to wbint_UnixIDs2Sids
via 5ffedec winbindd: add domain SID to idmap mapping domains
via dce01ac pthreadpool: Add a test for the race condition fixed in the last commit
via b418ab3 pthreadpool: Fix starvation after fork
via 2530053 third_party: Fix a typo in the option name
via 364f1c5 third_party: Link th aesni-intel library with -z noexecstack
via 2d1d00b s3: libsmb: Fix reversing of oldname/newname paths when creating a reparse point symlink on Windows from smbclient.
via 3f1f2a8 s3: client: Rename <oldname> to <link_target> in cmd_symlink() and cli_posix_symlink().
via 61140f4 pthreadpool: Fix deadlock
via 086b453 pthreadpool: Add test for pthread_create failure
via a677717 wscript: Add check for --wrap linker flag
via fcc8616 pthreadpool: Undo put_job when returning error
via c43c888 pthreadpool: Move creating of thread to new function
via 97a9e81 ctdb-daemon: Send STARTUP control after startup event
via 6f7215f ctdb-takeover: Send tcp tickles immediately on STARTUP control
via 0fdc82e ctdb-takeover: Refactor code to send tickle lists for all public IPs
via 5bb2b9c vfs_zfsacl: fix compilation error
via 8a313c8 winbindd: let normalize_name_map() call find_domain_from_name_noinit()
via ac32a77 s3: libsmb: Fix valgrind read-after-free error in cli_smb2_close_fnum_recv().
via 0fcdf5d testprogs: Test net ads keytab list
via aba1e91 s3:libads: net ads keytab list fails with "Key table name malformed"
via 73d3e64 vfs_fruit: proper VFS-stackable conversion of FinderInfo
via 3f94680 vfs_fruit: add AfpInfo prototypes
via 2d3e21f s4/torture: fruit: in test_adouble_conversion() also check stream list and AFPINFO_STREAM
via 3d90751 s4/torture: fruit: remove use of localdir from test_adouble_conversion test
via 8946fc8 selftest: add "fruit:veto_appledouble = no" to fruit shares
via 1143b2f s4/torture: let write_stream() deal with stream=NULL
via 0b7e170 selftest: run AppleDouble sidecar-file conversion test runs against all fruit shares
via b9f7dd4 s4/torture: use torture_assert_goto in a vfs.fruit test
via e24e345 s4/torture: rework stream names tests usage of local xattr call
via 1a2f564 selftest: add localdir option to fruit subtests
via 590a4cf selftest: reorder arguments for fruit tests
via 9990e6e s3/loadparm: don't mark IPC$ as autoloaded
via cecbc43 s3/loadparm: ensure default service options are not changed
via 7dc2782 s3/loadparm: allocate a fresh sDefault object per lp_ctx
via e36b1ce Add vfs_zfsacl manpage to the list of manpages if we have this module enabled.
via b21d9f0 Fix typo in the "wide links" description for the getwd cache.
via 39922b5 s4:samba: Allow samba daemon to run in foreground
via 6182708 s4:samba: Do not segfault if we run into issues
via e41925e s4/smbd: set the process group.
via 00dfe4c repl_meta_data: Fix removing of backlink on deleted objects
via f2c4754 repl_meta_data: Allow delete of an object with dangling backlinks
via fe3ae81 selftest: Add more corruption cases for runtime and dbcheck
via 09a311c selftest: add dbcheck tests for duplicate links
via ece46f7 dbcheck: detect and fix duplicate links
via c1860d1 dbcheck: only calculate linked attribute helper variables once in check_dn()
via 7b67da4 dbcheck: remove indentation level
via 27cdadf dsdb:extended_dn_store: implement DSDB_CONTROL_DBCHECK_FIX_DUPLICATE_LINKS control
via aafcb73 dsdb:repl_meta_data: implement DSDB_CONTROL_DBCHECK_FIX_DUPLICATE_LINKS control
via f0920ea s4:dsdb: allocate DSDB_CONTROL_DBCHECK_FIX_DUPLICATE_LINKS oid
via 67270b3 s4:schema_samba4: mark DSDB_CONTROL_INVALID_NOT_IMPLEMENTED 1.3.6.1.4.1.7165.4.3.32 as allocated
via ee05047 selftest: Additional check for a backlink pointing at a deleted object
via df23dc8 selftest: Split out creation of complex (often invalid) links
via 505936a selftest: Split out dbcheck runs from dangling_multi_valued test
via 74688a2 selftest: add more dbcheck tests
via 68bf275 dbcheck: Use the GUID as the DN to fix replPropertyMetaData
via b7c9edb dbcheck: Clarify error count bumping in deleted/gone DN handling
via ed4189f selftest: sort dbcheck output to avoid sort order impacting results
via 45911b0 dbcheck: Allow removal of one-way links to missing objects
via e90e3d7 systemd: Start processes in forground and without a process group
via fe6da67 libnet_join: fix "net rpc oldjoin"
via 72e69f5 s3:selftest: add samba3.blackbox.net_rpc_oldjoin test
via 3ef93ab vfs_glusterfs: include glusterfs/api/glfs.h without relying on -I options
via 710c2ad ctdb-common: Call missing tevent_wakeup_recv() in sock_daemon
via e4cce45 ctdb-daemon: Allocate deferred calls off calling context
via f398a79 winbind: Remove winbind_messaging_context
via bbe5614 winbind: winbind_messaging_context -> server_messaging_context
via 3aaa48c winbind: Remove winbind_event_context
via f6a9d34 winbind: Replace winbind_event_context with server_event_context
via 58e728a s3: smbclient: tests: Test "volume" command over SMB1 and SMB2+.
via ea297d6 s3: smbclient: Implement "volume" command over SMB2.
via cb6ec4d VERSION: Bump version up to 4.7.4...
via 641af30 Merge tag 'samba-4.7.3' into v4-7-test
via 7b28a97 s3: libsmb: smbc_statvfs is missing the supporting SMB2 calls.
via 6f18428 libsmbclient: Allow server (NetApp) to return STATUS_INVALID_PARAMETER from an echo.
from d0b59a5 VERSION: Disable GIT_SNAPSHOT for the 4.7.3 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-7-stable
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
VERSION | 2 +-
WHATSNEW.txt | 128 +++++++-
ctdb/common/sock_daemon.c | 8 +
ctdb/server/ctdb_call.c | 14 +-
ctdb/server/ctdb_daemon.c | 6 -
ctdb/server/ctdb_monitor.c | 6 +
ctdb/server/ctdb_takeover.c | 59 ++--
docs-xml/smbdotconf/tuning/getwdcache.xml | 2 +-
docs-xml/wscript_build | 3 +
lib/ldb/ABI/{ldb-1.2.2.sigs => ldb-1.2.3.sigs} | 0
...yldb-util-1.1.10.sigs => pyldb-util-1.2.3.sigs} | 0
...-util-1.1.10.sigs => pyldb-util.py3-1.2.3.sigs} | 0
lib/ldb/ldb_tdb/ldb_index.c | 141 ++++++--
lib/ldb/ldb_tdb/ldb_tdb.c | 38 ++-
lib/ldb/ldb_tdb/ldb_tdb.h | 16 +-
lib/ldb/wscript | 2 +-
lib/pthreadpool/pthreadpool.c | 196 ++++++++---
lib/pthreadpool/tests.c | 82 +++++
lib/pthreadpool/tests_cmocka.c | 179 ++++++++++
lib/pthreadpool/wscript_build | 7 +
librpc/idl/winbind.idl | 1 +
packaging/systemd/nmb.service | 2 +-
packaging/systemd/samba.service | 2 +-
packaging/systemd/smb.service | 2 +-
packaging/systemd/winbind.service | 2 +-
python/samba/dbchecker.py | 305 ++++++++++++-----
python/samba/tests/samba_tool/sites.py | 4 +-
selftest/knownfail | 2 +-
selftest/knownfail.d/samba3.vfs.fruit | 1 +
selftest/target/Samba3.pm | 3 +
selftest/target/Samba4.pm | 2 +-
selftest/tests.py | 5 +
source3/client/client.c | 23 +-
source3/include/idmap.h | 5 +
source3/lib/g_lock.c | 6 +-
source3/lib/messages_ctdbd.c | 13 +
source3/libads/kerberos_keytab.c | 6 +-
source3/libnet/libnet_join.c | 94 ++++--
source3/libsmb/cli_smb2_fnum.c | 235 ++++++++++++-
source3/libsmb/cli_smb2_fnum.h | 11 +
source3/libsmb/clifile.c | 15 +-
source3/libsmb/clifsinfo.c | 17 +
source3/libsmb/clisymlink.c | 14 +-
source3/libsmb/libsmb_server.c | 11 +-
source3/modules/vfs_fruit.c | 93 +++++-
source3/modules/vfs_glusterfs.c | 2 +-
source3/modules/vfs_zfsacl.c | 10 +-
source3/param/loadparm.c | 20 +-
source3/script/tests/test_net_rpc_oldjoin.sh | 32 ++
source3/script/tests/test_smbclient_s3.sh | 32 ++
source3/selftest/tests.py | 15 +-
source3/smbd/notify.c | 17 +-
source3/smbd/server.c | 2 +-
source3/smbd/smb2_lock.c | 17 +
source3/smbd/smb2_server.c | 19 ++
source3/torture/torture.c | 9 -
source3/winbindd/idmap.c | 4 +-
source3/winbindd/idmap_ldap.c | 2 +-
source3/winbindd/idmap_proto.h | 3 +-
source3/winbindd/idmap_rfc2307.c | 2 +-
source3/winbindd/idmap_rid.c | 10 +-
source3/winbindd/wb_getpwsid.c | 8 +-
source3/winbindd/wb_xids2sids.c | 167 +++++++++-
source3/winbindd/winbindd.c | 110 ++-----
source3/winbindd/winbindd_cm.c | 36 +-
source3/winbindd/winbindd_cred_cache.c | 14 +-
source3/winbindd/winbindd_dual.c | 50 +--
source3/winbindd/winbindd_dual_srv.c | 9 +-
source3/winbindd/winbindd_group.c | 11 +-
source3/winbindd/winbindd_irpc.c | 10 +-
source3/winbindd/winbindd_misc.c | 2 +-
source3/winbindd/winbindd_msrpc.c | 4 +-
source3/winbindd/winbindd_pam_auth.c | 2 +-
source3/winbindd/winbindd_pam_auth_crap.c | 2 +-
source3/winbindd/winbindd_pam_chauthtok.c | 2 +-
.../winbindd/winbindd_pam_chng_pswd_auth_crap.c | 2 +-
source3/winbindd/winbindd_pam_logoff.c | 2 +-
source3/winbindd/winbindd_proto.h | 4 +-
source3/winbindd/winbindd_rpc.c | 4 +-
source3/winbindd/winbindd_util.c | 11 +-
source3/wscript | 4 +-
source4/dns_server/dnsserver_common.c | 36 +-
source4/dsdb/samdb/ldb_modules/extended_dn_store.c | 7 +
source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 81 ++++-
source4/dsdb/samdb/samdb.h | 3 +
source4/kdc/hdb-samba4.c | 24 +-
source4/libcli/smb2/keepalive.c | 7 +-
.../add-dangling-deleted-link.ldif | 5 +
.../add-deleted-backlink-user.ldif | 3 +
...ing-backlink.ldif => add-deleted-backlink.ldif} | 3 +-
.../add-deleted-target-backlink-user.ldif | 3 +
.../add-deleted-target-backlink.ldif | 4 +
...-one-way-link.ldif => dangling-one-way-dn.ldif} | 0
.../release-4-5-0-pre1/dangling-one-way-link.ldif | 22 +-
.../release-4-5-0-pre1/deleted-one-way-dn.ldif | 13 +
.../expected-dbcheck-link-output.txt | 58 ++--
...pected-dbcheck-link-output_duplicate_member.txt | 8 +
.../expected-dbcheck-link-output_one_way.txt | 7 +
.../expected-duplicates-after-link-dbcheck.ldif | 28 ++
.../revive-backlink-on-deleted-group.ldif | 5 +
.../revive-links-on-deleted-group.ldif | 20 ++
source4/setup/schema_samba4.ldif | 2 +
source4/smbd/server.c | 39 ++-
source4/torture/smb2/session.c | 362 +++++++++++++++++++++
source4/torture/vfs/fruit.c | 198 ++++++-----
testprogs/blackbox/common-links.sh | 215 ++++++++++++
testprogs/blackbox/dbcheck-links.sh | 212 ++++--------
testprogs/blackbox/runtime-links.sh | 74 +++++
testprogs/blackbox/test_net_ads.sh | 13 +
third_party/aesni-intel/wscript | 7 +-
wscript | 4 +
111 files changed, 3075 insertions(+), 801 deletions(-)
copy lib/ldb/ABI/{ldb-1.2.2.sigs => ldb-1.2.3.sigs} (100%)
copy lib/ldb/ABI/{pyldb-util-1.1.10.sigs => pyldb-util-1.2.3.sigs} (100%)
copy lib/ldb/ABI/{pyldb-util-1.1.10.sigs => pyldb-util.py3-1.2.3.sigs} (100%)
create mode 100644 lib/pthreadpool/tests_cmocka.c
create mode 100644 selftest/knownfail.d/samba3.vfs.fruit
create mode 100755 source3/script/tests/test_net_rpc_oldjoin.sh
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/add-dangling-deleted-link.ldif
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/add-deleted-backlink-user.ldif
copy source4/selftest/provisions/release-4-5-0-pre1/{add-dangling-backlink.ldif => add-deleted-backlink.ldif} (67%)
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/add-deleted-target-backlink-user.ldif
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/add-deleted-target-backlink.ldif
copy source4/selftest/provisions/release-4-5-0-pre1/{dangling-one-way-link.ldif => dangling-one-way-dn.ldif} (100%)
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/deleted-one-way-dn.ldif
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/expected-dbcheck-link-output_duplicate_member.txt
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/expected-dbcheck-link-output_one_way.txt
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/expected-duplicates-after-link-dbcheck.ldif
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/revive-backlink-on-deleted-group.ldif
create mode 100644 source4/selftest/provisions/release-4-5-0-pre1/revive-links-on-deleted-group.ldif
create mode 100644 testprogs/blackbox/common-links.sh
create mode 100755 testprogs/blackbox/runtime-links.sh
Changeset truncated at 500 lines:
diff --git a/VERSION b/VERSION
index 7a17821..f24f545 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
########################################################
SAMBA_VERSION_MAJOR=4
SAMBA_VERSION_MINOR=7
-SAMBA_VERSION_RELEASE=3
+SAMBA_VERSION_RELEASE=4
########################################################
# If a official release has a serious bug #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 4e403ae..22ad049 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,128 @@
=============================
+ Release Notes for Samba 4.7.4
+ December 22, 2017
+ =============================
+
+
+This is the latest stable release of the Samba 4.7 release series.
+
+
+smbclient reparse point symlink parameters reversed
+===================================================
+
+A bug in smbclient caused the 'symlink' command to reverse the
+meaning of the new name and link target parameters when creating a
+reparse point symlink against a Windows server.
+
+This only affects using the smbclient 'symlink' command against
+a Windows server, not a Samba server using the UNIX extensions
+(the parameter order is correct in that case) so no existing
+user scripts that depend on creating symlinks on Samba servers
+need to change.
+
+As this is a little used feature the ordering of these parameters
+has been reversed to match the parameter ordering of the UNIX
+extensions 'symlink' command. This means running 'symlink' against
+both Windows and Samba now uses the same paramter ordering in both
+cases.
+
+The usage message for this command has also been improved to remove confusion.
+
+
+Changes since 4.7.3:
+--------------------
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 13140: s3: smbclient: Implement 'volume' command over SMB2.
+ * BUG 13171: s3: libsmb: Fix valgrind read-after-free error in
+ cli_smb2_close_fnum_recv().
+ * BUG 13172: s3: libsmb: Fix reversing of oldname/newname paths when creating
+ a reparse point symlink on Windows from smbclient.
+
+o Timur I. Bakeyev <timur at iXsystems.com>
+ * BUG 12934: Build man page for vfs_zfsacl.8 with Samba.
+
+o Andrew Bartlett <abartlet at samba.org>
+ * BUG 13095: repl_meta_data: Allow delete of an object with dangling
+ backlinks.
+ * BUG 13129: s4:samba: Fix default to be running samba as a deamon.
+ * BUG 13191: Performance regression in DNS server with introduction of
+ DNS wildcard, ldb: Release 1.2.3
+
+o Ralph Boehme <slow at samba.org>
+ * BUG 6133: vfs_zfsacl: Fix compilation error.
+ * BUG 13051: "smb encrypt" setting changes are not fully applied until full
+ smbd restart.
+ * BUG 13052: winbindd: Fix idmap_rid dependency on trusted domain list.
+ * BUG 13155: vfs_fruit: Proper VFS-stackable conversion of FinderInfo.
+ * BUG 13173: winbindd: Dependency on trusted-domain list in winbindd in
+ critical auth codepath.
+
+o Andrej Gessel <Andrej.Gessel at janztec.com>
+ * BUG 13120: repl_meta_data: Fix removing of backlink on deleted objects.
+
+o Amitay Isaacs <amitay at gmail.com>
+ "* BUG 13153: ctdb: sock_daemon leaks memory.
+ * BUG 13154: TCP tickles not getting synchronised on CTDB restart.
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 13150: winbindd: winbind parent and child share a ctdb connection.
+ * BUG 13170: pthreadpool: Fix deadlock.
+ * BUG 13179: pthreadpool: Fix starvation after fork.
+ * BUG 13180: messaging: Always register the unique id.
+
+o Gary Lockyer <gary at catalyst.net.nz>
+ * 13129: s4/smbd: set the process group.
+
+o Stefan Metzmacher <metze at samba.org>
+ * BUG 13095: Fix broken linked attribute handling.
+ * BUG 13132: The KDC on an RWDC doesn't send error replies in some
+ situations.
+ * BUG 13149: libnet_join: Fix 'net rpc oldjoin'.
+ * BUG 13195: g_lock conflict detection broken when processing stale entries.
+ * BUG 13197: s3:smb2_server: allow logoff, close, unlock, cancel and echo
+ on expired sessions.
+
+o Noel Power <noel.power at suse.com>
+ * BUG 13166: s3:libads: net ads keytab list fails with "Key table name
+ malformed".
+
+o Christof Schmitt <cs at samba.org>
+ * BUG 13170: Fix crash in pthreadpool thread after failure from pthread_create.
+
+o Andreas Schneider <asn at samba.org>
+ * BUG 13129: s4:samba: Allow samba daemon to run in foreground.
+ * BUG 13174: third_party: Link the aesni-intel library with "-z noexecstack".
+
+o Niels de Vos <ndevos at redhat.com>
+ * BUG 13125: vfs_glusterfs: include glusterfs/api/glfs.h without relying on
+ "-I" options.
+
+
+#######################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored. All bug reports should
+be filed under the "Samba 4.1 and newer" product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
+
+ =============================
Release Notes for Samba 4.7.3
November 21, 2017
=============================
@@ -66,8 +190,8 @@ database (https://bugzilla.samba.org/).
======================================================================
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
+
=============================
Release Notes for Samba 4.7.2
diff --git a/ctdb/common/sock_daemon.c b/ctdb/common/sock_daemon.c
index b53b4d8..1fe5ff5 100644
--- a/ctdb/common/sock_daemon.c
+++ b/ctdb/common/sock_daemon.c
@@ -628,6 +628,14 @@ static void sock_daemon_run_started(struct tevent_req *subreq)
struct sock_daemon_run_state *state = tevent_req_data(
req, struct sock_daemon_run_state);
struct sock_daemon_context *sockd = state->sockd;
+ bool status;
+
+ status = tevent_wakeup_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (! status) {
+ tevent_req_error(req, EIO);
+ return;
+ }
D_NOTICE("daemon started, pid=%u\n", getpid());
diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c
index 5b2e2f5..17d6f98 100644
--- a/ctdb/server/ctdb_call.c
+++ b/ctdb/server/ctdb_call.c
@@ -1549,6 +1549,7 @@ struct revokechild_deferred_call {
struct ctdb_req_header *hdr;
deferred_requeue_fn fn;
void *ctx;
+ struct revokechild_handle *rc;
};
struct revokechild_handle {
@@ -1573,12 +1574,20 @@ static void deferred_call_requeue(struct tevent_context *ev,
while (dlist != NULL) {
struct revokechild_deferred_call *dcall = dlist;
+ talloc_set_destructor(dcall, NULL);
DLIST_REMOVE(dlist, dcall);
dcall->fn(dcall->ctx, dcall->hdr);
talloc_free(dcall);
}
}
+static int deferred_call_destructor(struct revokechild_deferred_call *dcall)
+{
+ struct revokechild_handle *rc = dcall->rc;
+
+ DLIST_REMOVE(rc->deferred_call_list, dcall);
+ return 0;
+}
static int revokechild_destructor(struct revokechild_handle *rc)
{
@@ -1917,7 +1926,7 @@ int ctdb_add_revoke_deferred_call(struct ctdb_context *ctdb, struct ctdb_db_cont
return -1;
}
- deferred_call = talloc(ctdb_db, struct revokechild_deferred_call);
+ deferred_call = talloc(call_context, struct revokechild_deferred_call);
if (deferred_call == NULL) {
DEBUG(DEBUG_ERR,("Failed to allocate deferred call structure for revoking record\n"));
return -1;
@@ -1927,6 +1936,9 @@ int ctdb_add_revoke_deferred_call(struct ctdb_context *ctdb, struct ctdb_db_cont
deferred_call->hdr = talloc_steal(deferred_call, hdr);
deferred_call->fn = fn;
deferred_call->ctx = call_context;
+ deferred_call->rc = rc;
+
+ talloc_set_destructor(deferred_call, deferred_call_destructor);
DLIST_ADD(rc->deferred_call_list, deferred_call);
diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c
index de38542..3abbee4 100644
--- a/ctdb/server/ctdb_daemon.c
+++ b/ctdb/server/ctdb_daemon.c
@@ -1081,12 +1081,6 @@ static void ctdb_setup_event_callback(struct ctdb_context *ctdb, int status,
}
ctdb_run_notification_script(ctdb, "setup");
- /* tell all other nodes we've just started up */
- ctdb_daemon_send_control(ctdb, CTDB_BROADCAST_ALL,
- 0, CTDB_CONTROL_STARTUP, 0,
- CTDB_CTRL_FLAG_NOREPLY,
- tdb_null, NULL, NULL);
-
/* Start the recovery daemon */
if (ctdb_start_recoverd(ctdb) != 0) {
DEBUG(DEBUG_ALERT,("Failed to start recovery daemon\n"));
diff --git a/ctdb/server/ctdb_monitor.c b/ctdb/server/ctdb_monitor.c
index 738acb1..1864887 100644
--- a/ctdb/server/ctdb_monitor.c
+++ b/ctdb/server/ctdb_monitor.c
@@ -243,6 +243,12 @@ static void ctdb_startup_callback(struct ctdb_context *ctdb, int status, void *p
ctdb->monitor->monitoring_mode = CTDB_MONITORING_ENABLED;
+ /* tell all other nodes we've just started up */
+ ctdb_daemon_send_control(ctdb, CTDB_BROADCAST_CONNECTED,
+ 0, CTDB_CONTROL_STARTUP, 0,
+ CTDB_CTRL_FLAG_NOREPLY,
+ tdb_null, NULL, NULL);
+
tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,
timeval_current_ofs(ctdb->monitor->next_interval, 0),
ctdb_check_health, ctdb);
diff --git a/ctdb/server/ctdb_takeover.c b/ctdb/server/ctdb_takeover.c
index c359d66..a7aa8db 100644
--- a/ctdb/server/ctdb_takeover.c
+++ b/ctdb/server/ctdb_takeover.c
@@ -1495,24 +1495,23 @@ int32_t ctdb_control_tcp_remove(struct ctdb_context *ctdb, TDB_DATA indata)
}
+static void ctdb_send_set_tcp_tickles_for_all(struct ctdb_context *ctdb,
+ bool force);
+
/*
Called when another daemon starts - causes all tickles for all
public addresses we are serving to be sent to the new node on the
- next check. This actually causes the next scheduled call to
- tdb_update_tcp_tickles() to update all nodes. This is simple and
+ next check. This actually causes the tickles to be sent to the
+ other node immediately. In case there is an error, the periodic
+ timer will send the updates on timer event. This is simple and
doesn't require careful error handling.
*/
int32_t ctdb_control_startup(struct ctdb_context *ctdb, uint32_t pnn)
{
- struct ctdb_vnn *vnn;
-
DEBUG(DEBUG_INFO, ("Received startup control from node %lu\n",
(unsigned long) pnn));
- for (vnn = ctdb->vnn; vnn != NULL; vnn = vnn->next) {
- vnn->tcp_update_needed = true;
- }
-
+ ctdb_send_set_tcp_tickles_for_all(ctdb, true);
return 0;
}
@@ -1995,43 +1994,53 @@ static int ctdb_send_set_tcp_tickles_for_ip(struct ctdb_context *ctdb,
return ret;
}
-
-/*
- perform tickle updates if required
- */
-static void ctdb_update_tcp_tickles(struct tevent_context *ev,
- struct tevent_timer *te,
- struct timeval t, void *private_data)
+static void ctdb_send_set_tcp_tickles_for_all(struct ctdb_context *ctdb,
+ bool force)
{
- struct ctdb_context *ctdb = talloc_get_type(private_data, struct ctdb_context);
- int ret;
struct ctdb_vnn *vnn;
+ int ret;
- for (vnn=ctdb->vnn;vnn;vnn=vnn->next) {
- /* we only send out updates for public addresses that
+ for (vnn = ctdb->vnn; vnn != NULL; vnn = vnn->next) {
+ /* we only send out updates for public addresses that
we have taken over
*/
if (ctdb->pnn != vnn->pnn) {
continue;
}
+
/* We only send out the updates if we need to */
- if (!vnn->tcp_update_needed) {
+ if (!force && !vnn->tcp_update_needed) {
continue;
}
+
ret = ctdb_send_set_tcp_tickles_for_ip(ctdb,
&vnn->public_address,
vnn->tcp_array);
if (ret != 0) {
- DEBUG(DEBUG_ERR,("Failed to send the tickle update for public address %s\n",
- ctdb_addr_to_str(&vnn->public_address)));
+ D_ERR("Failed to send the tickle update for ip %s\n",
+ ctdb_addr_to_str(&vnn->public_address));
+ vnn->tcp_update_needed = true;
} else {
- DEBUG(DEBUG_INFO,
- ("Sent tickle update for public address %s\n",
- ctdb_addr_to_str(&vnn->public_address)));
+ D_INFO("Sent tickle update for ip %s\n",
+ ctdb_addr_to_str(&vnn->public_address));
vnn->tcp_update_needed = false;
}
}
+}
+
+/*
+ perform tickle updates if required
+ */
+static void ctdb_update_tcp_tickles(struct tevent_context *ev,
+ struct tevent_timer *te,
+ struct timeval t, void *private_data)
+{
+ struct ctdb_context *ctdb = talloc_get_type(
+ private_data, struct ctdb_context);
+
+ ctdb_send_set_tcp_tickles_for_all(ctdb, false);
+
tevent_add_timer(ctdb->ev, ctdb->tickle_update_context,
timeval_current_ofs(ctdb->tunable.tickle_update_interval, 0),
ctdb_update_tcp_tickles, ctdb);
diff --git a/docs-xml/smbdotconf/tuning/getwdcache.xml b/docs-xml/smbdotconf/tuning/getwdcache.xml
index 93f7a90..ec4d9ed 100644
--- a/docs-xml/smbdotconf/tuning/getwdcache.xml
+++ b/docs-xml/smbdotconf/tuning/getwdcache.xml
@@ -6,7 +6,7 @@
<para>This is a tuning option. When this is enabled a
caching algorithm will be used to reduce the time taken for getwd()
calls. This can have a significant impact on performance, especially
- when the <smbconfoption name="wide smbconfoptions"/> parameter is set to <constant>no</constant>.</para>
+ when the <smbconfoption name="wide links"/> parameter is set to <constant>no</constant>.</para>
</description>
<value type="default">yes</value>
diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index eb25aa0..3ff1ade 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -158,3 +158,6 @@ if ('XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']):
if bld.CONFIG_SET('HAVE_KRB5_LOCATE_PLUGIN_H'):
bld.SAMBAMANPAGES(krb5_locator_manpages)
+
+ if bld.SAMBA3_IS_ENABLED_MODULE('vfs_zfsacl'):
+ bld.SAMBAMANPAGES('manpages/vfs_zfsacl.8')
diff --git a/lib/ldb/ABI/ldb-1.2.2.sigs b/lib/ldb/ABI/ldb-1.2.3.sigs
similarity index 100%
copy from lib/ldb/ABI/ldb-1.2.2.sigs
copy to lib/ldb/ABI/ldb-1.2.3.sigs
diff --git a/lib/ldb/ABI/pyldb-util-1.1.10.sigs b/lib/ldb/ABI/pyldb-util-1.2.3.sigs
similarity index 100%
copy from lib/ldb/ABI/pyldb-util-1.1.10.sigs
copy to lib/ldb/ABI/pyldb-util-1.2.3.sigs
diff --git a/lib/ldb/ABI/pyldb-util-1.1.10.sigs b/lib/ldb/ABI/pyldb-util.py3-1.2.3.sigs
similarity index 100%
copy from lib/ldb/ABI/pyldb-util-1.1.10.sigs
copy to lib/ldb/ABI/pyldb-util.py3-1.2.3.sigs
diff --git a/lib/ldb/ldb_tdb/ldb_index.c b/lib/ldb/ldb_tdb/ldb_index.c
index 3510dd9..56ecf93 100644
--- a/lib/ldb/ldb_tdb/ldb_index.c
+++ b/lib/ldb/ldb_tdb/ldb_index.c
@@ -79,7 +79,9 @@ static int dn_list_cmp(const struct ldb_val *v1, const struct ldb_val *v2)
find a entry in a dn_list, using a ldb_val. Uses a case sensitive
comparison with the dn returns -1 if not found
*/
-static int ltdb_dn_list_find_val(const struct dn_list *list, const struct ldb_val *v)
+static int ltdb_dn_list_find_val(struct ltdb_private *ltdb,
+ const struct dn_list *list,
+ const struct ldb_val *v)
{
unsigned int i;
for (i=0; i<list->count; i++) {
@@ -94,12 +96,14 @@ static int ltdb_dn_list_find_val(const struct dn_list *list, const struct ldb_va
find a entry in a dn_list. Uses a case sensitive comparison with the dn
returns -1 if not found
*/
-static int ltdb_dn_list_find_str(struct dn_list *list, const char *dn)
+static int ltdb_dn_list_find_str(struct ltdb_private *ltdb,
+ struct dn_list *list,
+ const char *dn)
{
struct ldb_val v;
v.data = discard_const_p(unsigned char, dn);
v.length = strlen(dn);
- return ltdb_dn_list_find_val(list, &v);
+ return ltdb_dn_list_find_val(ltdb, list, &v);
}
/*
@@ -219,7 +223,9 @@ normal_index:
/*
save a dn_list into a full @IDX style record
*/
-static int ltdb_dn_list_store_full(struct ldb_module *module, struct ldb_dn *dn,
+static int ltdb_dn_list_store_full(struct ldb_module *module,
+ struct ltdb_private *ltdb,
+ struct ldb_dn *dn,
struct dn_list *list)
{
struct ldb_message *msg;
@@ -274,7 +280,8 @@ static int ltdb_dn_list_store(struct ldb_module *module, struct ldb_dn *dn,
struct dn_list *list2;
if (ltdb->idxptr == NULL) {
- return ltdb_dn_list_store_full(module, dn, list);
+ return ltdb_dn_list_store_full(module, ltdb,
+ dn, list);
}
if (ltdb->idxptr->itdb == NULL) {
@@ -345,7 +352,8 @@ static int ltdb_index_traverse_store(struct tdb_context *tdb, TDB_DATA key, TDB_
return -1;
}
- ltdb->idxptr->error = ltdb_dn_list_store_full(module, dn, list);
+ ltdb->idxptr->error = ltdb_dn_list_store_full(module, ltdb,
+ dn, list);
talloc_free(dn);
if (ltdb->idxptr->error != 0) {
return -1;
@@ -575,6 +583,7 @@ static int ltdb_index_dn_leaf(struct ldb_module *module,
list = list & list2
*/
static bool list_intersect(struct ldb_context *ldb,
+ struct ltdb_private *ltdb,
struct dn_list *list, const struct dn_list *list2)
{
struct dn_list *list3;
@@ -622,7 +631,8 @@ static bool list_intersect(struct ldb_context *ldb,
list3->count = 0;
for (i=0;i<list->count;i++) {
- if (ltdb_dn_list_find_val(list2, &list->dn[i]) != -1) {
+ if (ltdb_dn_list_find_val(ltdb, list2,
+ &list->dn[i]) != -1) {
list3->dn[list3->count] = list->dn[i];
list3->count++;
}
@@ -846,7 +856,8 @@ static int ltdb_index_dn_and(struct ldb_module *module,
list->dn = list2->dn;
list->count = list2->count;
found = true;
- } else if (!list_intersect(ldb, list, list2)) {
+ } else if (!list_intersect(ldb, ltdb,
+ list, list2)) {
talloc_free(list2);
return LDB_ERR_OPERATIONS_ERROR;
}
@@ -952,7 +963,8 @@ static int ltdb_index_dn(struct ldb_module *module,
filter a candidate dn_list from an indexed search into a set of results
extracting just the given attributes
*/
--
Samba Shared Repository
More information about the samba-cvs
mailing list