Samba 4.4 Features added/changed

From SambaWiki

Samba 4.4.0

Release Notes for Samba 4.4.0
March 22, 2016

This is the first stable release of the Samba 4.4 release series.


Nothing special.


Asynchronous flush requests

Flush requests from SMB2/3 clients are handled asynchronously and do not block the processing of other requests. Note that 'strict sync' has to be set to 'yes' for Samba to honor flush requests from SMB clients.

s3: smbd

Remove '--with-aio-support' configure option. We no longer would ever prefer POSIX-RT aio, use pthread_aio instead.

samba-tool sites

The 'samba-tool sites' subcommand can now be run against another server by specifying an LDB URL using the '-H' option and not against the local database only (which is still the default when no URL is given).

samba-tool domain demote

Add '--remove-other-dead-server' option to 'samba-tool domain demote' subcommand. The new version of this tool now can remove another DC that is itself offline. The '--remove-other-dead-server' removes as many references to the DC as possible.

samba-tool drs clone-dc-database

Replicate an initial clone of domain, but do not join it. This is developed for debugging purposes, but not for setting up another DC.


Add '--set-nt-hash' option to pdbedit to update user password from nt-hash hexstring. 'pdbedit -vw' shows also password hashes.


'smbstatus' was enhanced to show the state of signing and encryption for sessions and shares.


The -u and -p options for user and password were replaced by the -U option that accepts username[%password] as in many other tools of the Samba suite. Similary, smbgetrc files do not accept username and password options any more, only a single "user" option which also accepts user%password combinations.


Add a GnuTLS based backupkey implementation.


Using the '--offline-logon' enables ntlm_auth to use cached passwords when the DC is offline.

Allow '--password' force a local password check for ntlm-server-1 mode.


A new VFS module called vfs_offline has been added to mark all files in the share as offline. It can be useful for shares mounted on top of a remote file system (either through a samba VFS module or via FUSE).


The Samba KCC has been improved, but is still disabled by default.


There were several improvements concerning the Samba DNS server.

Active Directory

There were some improvements in the Active Directory area.

WINS nsswitch module

The WINS nsswitch module has been rewritten to address memory issues and to simplify the code. The module now uses libwbclient to do WINS queries. This means that winbind needs to be running in order to resolve WINS names using the nss_wins module. This does not affect smbd.

CTDB changes

  • CTDB now uses a newly implemented parallel database recovery scheme that avoids deadlocks with smbd.
In certain circumstances CTDB and smbd could deadlock. The new recovery implementation avoid this. It also provides improved recovery performance.
  • All files are now installed into and referred to by the paths configured at build time. Therefore, CTDB will now work properly when installed into the default location at /usr/local.
  • Public CTDB header files are no longer installed, since Samba and CTDB are built from within the same source tree.
  • CTDB_DBDIR can now be set to tmpfs[:<tmpfs-options>]
This will cause volatile TDBs to be located in a tmpfs. This can help to avoid performance problems associated with contention on the disk where volatile TDBs are usually stored. See ctdbd.conf(5) for more details.
  • Configuration variable CTDB_NATGW_SLAVE_ONLY is no longer used.
Instead, nodes should be annotated with the "slave-only" option in the CTDB NAT gateway nodes file. This file must be consistent across nodes in a NAT gateway group. See ctdbd.conf(5) for more details.
  • New event script 05.system allows various system resources to be monitored
This can be helpful for explaining poor performance or unexpected behaviour. New configuration variables are CTDB_MONITOR_FILESYSTEM_USAGE, CTDB_MONITOR_MEMORY_USAGE and CTDB_MONITOR_SWAP_USAGE. Default values cause warnings to be logged. See the SYSTEM RESOURCE MONITORING CONFIGURATION in ctdbd.conf(5) for more information.
The memory, swap and filesystem usage monitoring previously found in 00.ctdb and 40.fs_use is no longer available. Therefore, configuration variables CTDB_CHECK_FS_USE, CTDB_MONITOR_FREE_MEMORY, CTDB_MONITOR_FREE_MEMORY_WARN and CTDB_CHECK_SWAP_IS_NOT_USED are now ignored.
  • The 62.cnfs eventscript has been removed. To get a similar effect just do something like this:
     mmaddcallback ctdb-disable-on-quorumLoss \
       --command /usr/bin/ctdb \
       --event quorumLoss --parms "disable"
     mmaddcallback ctdb-enable-on-quorumReached \
       --command /usr/bin/ctdb \
       --event quorumReached --parms "enable"
  • The CTDB tunable parameter EventScriptTimeoutCount has been renamed to MonitorTimeoutCount
It has only ever been used to limit timed-out monitor events.
Configurations containing CTDB_SET_EventScriptTimeoutCount=<n> will cause CTDB to fail at startup. Useful messages will be logged.
  • The commandline option "-n all" to CTDB tool has been removed.
The option was not uniformly implemented for all the commands. Instead of command "ctdb ip -n all", use "ctdb ip all".
  • All CTDB current manual pages are now correctly installed


SMB3 Multi-Channel

Samba 4.4.0 adds *experimental* support for SMB3 Multi-Channel. Multi-Channel is an SMB3 protocol feature that allows the client to bind multiple transport connections into one authenticated SMB session. This allows for increased fault tolerance and throughput. The client chooses transport connections as reported by the server and also chooses over which of the bound transport connections to send traffic. I/O operations for a given file handle can span multiple network connections this way. An SMB multi-channel session will be valid as long as at least one of its channels are up.

In Samba, multi-channel can be enabled by setting the new smb.conf option "server multi channel support" to "yes". It is disabled by default.

Samba has to report interface speeds and some capabilities to the client. On Linux, Samba can auto-detect the speed of an interface. But to support other platforms, and in order to be able to manually override the detected values, the "interfaces" smb.conf option has been given an extended syntax, by which an interface specification can additionally carry speed and capability information. The extended syntax looks like this for setting the speed to 1 gigabit per second:

   interfaces =;speed=1000000000

This extension should be used with care and are mainly intended for testing. See the smb.conf manual page for details.

CAVEAT: While this should be working without problems mostly, there are still corner cases in the treatment of channel failures that may result in DATA CORRUPTION when these race conditions hit.

It is hence


at this stage. This situation can be expected to improve during the life-time of the 4.4 release. Feed-back from test-setups is highly welcome.


Public headers

Several public headers are not installed any longer. They are made for internal use only. More public headers will very likely be removed in future releases.

The following headers are not installed any longer: dlinklist.h, gen_ndr/epmapper.h, gen_ndr/mgmt.h, gen_ndr/ndr_atsvc_c.h, gen_ndr/ndr_epmapper_c.h, gen_ndr/ndr_epmapper.h, gen_ndr/ndr_mgmt_c.h, gen_ndr/ndr_mgmt.h,gensec.h, ldap_errors.h, ldap_message.h, ldap_ndr.h, ldap-util.h, pytalloc.h, read_smb.h, registry.h, roles.h, samba_util.h, smb2_constants.h, smb2_create_blob.h, smb2.h, smb2_lease.h, smb2_signing.h, smb_cli.h, smb_cliraw.h, smb_common.h, smb_composite.h, smb_constants.h, smb_raw.h, smb_raw_interfaces.h, smb_raw_signing.h, smb_raw_trans2.h, smb_request.h, smb_seal.h, smb_signing.h, smb_unix_ext.h, smb_util.h, torture.h, tstream_smbXcli_np.h.


The SMB traffic analyzer VFS module has been removed, because it is not maintained any longer and not widely used.


The scannedonly VFS module has been removed, because it is not maintained any longer.

smb.conf changes

 Parameter Name		Description		Default
 --------------		-----------		-------
 aio max threads               New                     100
 ldap page size		Changed default		1000
 server multi channel support	New			No
 interfaces			Extended syntax


  • Michael Adam <>
  • BUG #11796: smbd: Enable multi-channel if 'server multi channel support = yes' in the config.
  • Günther Deschner <>
  • BUG #11802: lib/socket/interfaces: Fix some uninitialied bytes.
  • Uri Simchoni <>
  • BUG #11798: build: Fix build when '--without-quota' specified.


  • Andrew Bartlett <>
  • BUG #11780: mkdir can return ACCESS_DENIED incorrectly on create race.
  • BUG #11783: Mismatch between local and remote attribute ids lets replication fail with custom schema.
  • BUG #11789: Talloc: Version 2.1.6.
  • Ira Cooper <>
  • BUG #11774: vfs_glusterfs: Fix use after free in AIO callback.
  • Günther Deschner <>
  • Amitay Isaacs <>
  • BUG #11770: Reset TCP Connections during IP failover.
  • Justin Maggard <>
  • BUG #11773: s3:smbd: Add negprot remote arch detection for OSX.
  • Stefan Metzmacher <>
  • BUG #11772: ldb: Version 1.1.26.
  • BUG #11782: "trustdom_list_done: Got invalid trustdom response" message should be avoided.
  • Uri Simchoni <>
  • BUG #11769: libnet: Make Kerberos domain join site-aware.
  • BUG #11788: Quota is not supported on Solaris 10.


  • Michael Adam <>
  • 11723 BUG #11723: lib:socket: Fix CID 1350010: Integer OVERFLOW_BEFORE_WIDEN.
  • 11735 BUG #11735: lib:socket: Fix CID 1350009: Fix illegal memory accesses (BUFFER_SIZE_WARNING).
  • Jeremy Allison <>
  • 10489 BUG #10489: s3: smbd: posix_acls: Fix check for setting u:g:o entry on a filesystem with no ACL support.
  • Christian Ambach <>
  • Anoop C S <>
  • Ralph Boehme <>
  • Volker Lendecke <>
  • Noel Power <>
  • 11738 BUG #11738: libcli: Fix debug message, print sid string for new_ace trustee.
  • Jose A. Rivera <>
  • 11727 BUG #11727: s3:smbd:open: Skip redundant call to file_set_dosmode when creating a new file.
  • Andreas Schneider <>
  • Berend De Schouwer <>
  • Martin Schwenke <>
  • 11719 BUG #11719: ctdb-scripts: Drop use of "smbcontrol winbindd ip-dropped ..."
  • Hemanth Thummala <>


  • Michael Adam <>
  • Jeremy Allison <>
  • Christian Ambach <>
  • Günther Deschner <>
  • Stefan Metzmacher <>
  • 11699 BUG #11699: Crypto.Cipher.ARC4 is not available on some platforms, fallback to M2Crypto.RC4.RC4 then.
  • Amitay Isaacs <>
  • Andreas Schneider <>
  • Uri Simchoni <>
  • 11681 BUG #11681: smbd: Show correct disk size for different quota and dfree block sizes.


Currently none.