Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • lts-team/packages/samba
  • thctlo/samba-lintianfix
  • arnaudr/samba
  • jrwren/samba
  • paride/samba
  • athos/samba
  • henrich/samba
  • cnotin/samba
  • mimi89999/samba
  • samba-team/samba
  • ahasenack/samba
  • jrtc27/samba
  • noel/samba
13 results
Show changes
Commits on Source (94)
Showing
with 214 additions and 61 deletions
......@@ -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 #
......
=============================
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@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@iXsystems.com>
* BUG 12934: Build man page for vfs_zfsacl.8 with Samba.
o Andrew Bartlett <abartlet@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@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@janztec.com>
* BUG 13120: repl_meta_data: Fix removing of backlink on deleted objects.
o Amitay Isaacs <amitay@gmail.com>
"* BUG 13153: ctdb: sock_daemon leaks memory.
* BUG 13154: TCP tickles not getting synchronised on CTDB restart.
o Volker Lendecke <vl@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@catalyst.net.nz>
* 13129: s4/smbd: set the process group.
o Stefan Metzmacher <metze@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@suse.com>
* BUG 13166: s3:libads: net ads keytab list fails with "Key table name
malformed".
o Christof Schmitt <cs@samba.org>
* BUG 13170: Fix crash in pthreadpool thread after failure from pthread_create.
o Andreas Schneider <asn@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@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
......
......@@ -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());
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb-etcd
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-ETCD" "7" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-ETCD" "7" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb-statistics
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-STATISTICS" "7" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-STATISTICS" "7" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb-tunables
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-TUNABLES" "7" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-TUNABLES" "7" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB" "7" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB" "7" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb_diagnostics
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB_DIAGNOSTICS" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB_DIAGNOSTICS" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: Ceph RADOS Mutex
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CEPH RADOS MUTEX" "7" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CEPH RADOS MUTEX" "7" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdbd
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDBD" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDBD" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdbd.conf
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDBD\&.CONF" "5" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDBD\&.CONF" "5" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdbd_wrapper
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDBD_WRAPPER" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDBD_WRAPPER" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ltdbtool
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "LTDBTOOL" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "LTDBTOOL" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: onnode
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "ONNODE" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "ONNODE" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ping_pong
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/20/2017
.\" Date: 12/22/2017
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "PING_PONG" "1" "11/20/2017" "ctdb" "CTDB \- clustered TDB database"
.TH "PING_PONG" "1" "12/22/2017" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -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);
......
......@@ -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"));
......
......@@ -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);
......
......@@ -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);
......