[PATCH] Change "strict sync" paramter from "no" to "yes" by default for 4.7.0.

Jeremy Allison jra at samba.org
Thu Mar 23 16:08:55 UTC 2017


On Thu, Mar 23, 2017 at 08:10:31AM -0700, Jeremy Allison via samba-technical wrote:
> On Thu, Mar 23, 2017 at 03:34:22PM +0100, Christian Ambach via samba-technical wrote:
> > > Thanks, I won't post a new version of the patch for
> > > this but will fix if when I push if the consensus
> > > is for accepting the change.
> > 
> > I consent to the change. Don't we need a patch for WHATSNEW as well?
> 
> Oh good point. Updated patch to follow.

Here it is with added WHATSNEW change.

Please review !

Jeremy.
-------------- next part --------------
>From 3192fa01c264c8a86633cbcff4250aec9c2075c4 Mon Sep 17 00:00:00 2001
From: Jeremy Allison <jra at samba.org>
Date: Wed, 22 Mar 2017 19:22:31 -0700
Subject: [PATCH 1/2] s3: smbd: Change "strict sync" paramter from "no" to
 "yes" for 4.7.0.

Document change and modify in loadparm.c.
Safer default for new installs and vendors.

Signed-off-by: Jeremy Allison <jra at samba.org>
---
 docs-xml/smbdotconf/tuning/strictsync.xml | 48 +++++++++++++++++++------------
 source3/param/loadparm.c                  |  2 +-
 2 files changed, 31 insertions(+), 19 deletions(-)

diff --git a/docs-xml/smbdotconf/tuning/strictsync.xml b/docs-xml/smbdotconf/tuning/strictsync.xml
index 5cfd388..f2e3788 100644
--- a/docs-xml/smbdotconf/tuning/strictsync.xml
+++ b/docs-xml/smbdotconf/tuning/strictsync.xml
@@ -3,26 +3,38 @@
 				 type="boolean"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
  <description>
-    <para>Many Windows applications (including the Windows 98 explorer
-    shell) seem to confuse flushing buffer contents to disk with doing
-    a sync to disk. Under UNIX, a sync call forces the thread to be
-    suspended until the kernel has ensured that all outstanding data in
-    kernel disk buffers has been safely stored onto stable storage.
-    This is very slow and should only be done rarely. Setting this
-    parameter to <constant>no</constant> (the default) means that
-    <citerefentry><refentrytitle>smbd</refentrytitle>
-    <manvolnum>8</manvolnum></citerefentry> ignores the Windows
-    applications requests for a sync call. There is only a possibility
-    of losing data if the operating system itself that Samba is running
-    on crashes, so there is little danger in this default setting. In
-    addition, this fixes many performance problems that people have
-    reported with the new Windows98 explorer shell file copies.</para>
+    <para>This parameter controls whether Samba honors a request
+    from an SMB client to ensure any outstanding operating system
+    buffer contents held in memory are safely written onto stable
+    storage on disk. If set to <constant>yes</constant>, which is
+    the default, then Windows applications can force the smbd server
+    to synchronize unwritten data onto the disk. If set to
+    <constant>no</constant> then smbd will ignore client
+    requests to synchronize unwritten data onto stable storage on
+    disk.</para>
+
+    <para>In Samba 4.7.0, the default for this parameter changed from
+    <constant>no</constant> to <constant>yes</constant> to better
+    match the expectations of SMB2/3 clients and improve application
+    safety when running against smbd.</para>
+
     <para>The flush request from SMB2/3 clients is handled
-    asynchronously, so for these clients setting the parameter
-    to <constant>yes</constant> does not block the processing of other
-    requests in the smbd process.</para>
+    asynchronously inside smbd, so leaving the parameter as the default
+    value of <constant>yes</constant> does not block the processing of
+    other requests to the smbd process.</para>
+
+    <para>Legacy Windows applications (such as the Windows 98 explorer
+    shell) seemed to confuse writing buffer contents to the operating
+    system with synchronously writing outstanding data onto stable storage
+    on disk. Changing this parameter to <constant>no</constant> means that
+    <citerefentry><refentrytitle>smbd</refentrytitle>
+    <manvolnum>8</manvolnum></citerefentry> will ignore the Windows
+    applications request to synchronize unwritten data onto disk. Only
+    consider changing this if smbd is serving obsolete SMB1 Windows clients
+    prior to Windows XP (Windows 98 and below). There should be no need to
+    change this setting for normal operations.</para>
 </description>
 
 <related>sync always</related>
-<value type="default">no</value>
+<value type="default">yes</value>
 </samba:parameter>
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index c65e613..57220a6 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -207,7 +207,7 @@ static struct loadparm_service sDefault =
 	.sync_always = false,
 	.strict_allocate = false,
 	.strict_rename = false,
-	.strict_sync = false,
+	.strict_sync = true,
 	.mangling_char = '~',
 	.copymap = NULL,
 	.delete_readonly = false,
-- 
2.7.4


>From 63a6313a87fca7df587a258110843eda04850d9b Mon Sep 17 00:00:00 2001
From: Jeremy Allison <jra at samba.org>
Date: Thu, 23 Mar 2017 09:06:27 -0700
Subject: [PATCH 2/2] WHATSNEW: Document "strict sync" default change.

Signed-off-by: Jeremy Allison <jra at samba.org>
---
 WHATSNEW.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index dd60cd2..cda61ef 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -16,12 +16,18 @@ UPGRADING
 NEW FEATURES/CHANGES
 ====================
 
+The "strict sync" global parameter has been changed from
+a default of "no" to "yes". This means smbd will by default
+obey client requests to synchronize unwritten data in operating
+system buffers safely onto disk. This is a safer default setting
+for modern SMB1/2/3 clients.
 
 smb.conf changes
 ================
 
   Parameter Name                Description             Default
   --------------                -----------             -------
+  strict sync			Default changed		yes
 
 
 KNOWN ISSUES
-- 
2.7.4



More information about the samba-technical mailing list