[SCM] Samba Shared Repository - branch master updated
The branch, master has been updated via 98e34c299dd .gitlab-ci.yml: Increase resources for samba-ad-dc-backup job from 0b556e7827b vfs_preopen: TALLOC_FREE(fde) before closing the underlying fd https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 98e34c299ddd8b24f3daeeafe45ab136ad015a47 Author: Andrew Bartlett Date: Fri Jun 28 23:28:39 2019 +1200 .gitlab-ci.yml: Increase resources for samba-ad-dc-backup job This job seems to need more resources, possibly after b6b5b5fe355fee2a4096e9214831cb88c7a2a4c6 and 565341baf537c9b3145a882d6a23ad4f155c0036 Signed-off-by: Andrew Bartlett Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Fri Jun 28 18:48:49 UTC 2019 on sn-devel-184 --- Summary of changes: .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7ac73546989..19f6c5beae7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -141,9 +141,6 @@ samba-ad-dc-5: samba-ad-dc-6: extends: .shared_template -samba-ad-dc-backup: - extends: .shared_template - samba-libs: extends: .shared_template @@ -172,6 +169,9 @@ samba-ad-dc-ntvfs: # settings -> CI/CD -> Environment variables - $SUPPORT_PRIVATE_TEST == "yes" +samba-ad-dc-backup: + extends: .private_template + samba-fileserver: extends: .private_template -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated
The branch, master has been updated via 0b556e7827b vfs_preopen: TALLOC_FREE(fde) before closing the underlying fd via c26e42cb53f vfs_preopen: Fix an uninitialized variable read via 6bc70dcde26 vfs_preopen: Fix for O_NOFOLLOW via c88240e0e70 smbd: Fix broken brlock for clustering from fee8cf326bf vfs:glusterfs_fuse: treat ENOATTR as ENOENT https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 0b556e7827b32192cbbce1464e30764648ea1712 Author: Volker Lendecke Date: Wed Jun 26 17:43:44 2019 +0200 vfs_preopen: TALLOC_FREE(fde) before closing the underlying fd Without that we might get wrong stuff out of epoll Signed-off-by: Volker Lendecke Reviewed-by: Michael Adam Autobuild-User(master): Michael Adam Autobuild-Date(master): Fri Jun 28 16:42:42 UTC 2019 on sn-devel-184 commit c26e42cb53f9cfd9a54cacde64817ccf4ddd0412 Author: Volker Lendecke Date: Wed Jun 26 17:43:20 2019 +0200 vfs_preopen: Fix an uninitialized variable read Signed-off-by: Volker Lendecke Reviewed-by: Michael Adam commit 6bc70dcde2685e13f2f4cd6d9876e022629004de Author: Volker Lendecke Date: Wed Jun 26 17:42:54 2019 +0200 vfs_preopen: Fix for O_NOFOLLOW Since 4301505d977449d core smbd code passes O_NOFOLLOW together with [O_RDONLY|O_RDWR] as flags. This breaks activating vfs_preopen, we need to look at *just* the access mode. Signed-off-by: Volker Lendecke Reviewed-by: Michael Adam commit c88240e0e70279207611a0aba4554cb907275e42 Author: Volker Lendecke Date: Thu Jun 27 13:21:33 2019 +0200 smbd: Fix broken brlock for clustering This should have been in f11c5887f4fb4b766, sorry. We now always need TDB_SEQNUM on brlock.tdb. Signed-off-by: Volker Lendecke Reviewed-by: Michael Adam --- Summary of changes: source3/locking/brlock.c | 16 ++-- source3/modules/vfs_preopen.c | 4 +++- 2 files changed, 9 insertions(+), 11 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index 00462a31c78..b4628831f5b 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -288,16 +288,12 @@ void brl_init(bool read_only) return; } - tdb_flags = TDB_DEFAULT|TDB_VOLATILE|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH; - - if (!lp_clustering()) { - /* -* We can't use the SEQNUM trick to cache brlock -* entries in the clustering case because ctdb seqnum -* propagation has a delay. -*/ - tdb_flags |= TDB_SEQNUM; - } + tdb_flags = + TDB_DEFAULT| + TDB_VOLATILE| + TDB_CLEAR_IF_FIRST| + TDB_INCOMPATIBLE_HASH| + TDB_SEQNUM; db_path = lock_path(talloc_tos(), "brlock.tdb"); if (db_path == NULL) { diff --git a/source3/modules/vfs_preopen.c b/source3/modules/vfs_preopen.c index 24d33fafacd..a2afbf179f8 100644 --- a/source3/modules/vfs_preopen.c +++ b/source3/modules/vfs_preopen.c @@ -57,6 +57,7 @@ struct preopen_state { static void preopen_helper_destroy(struct preopen_helper *c) { int status; + TALLOC_FREE(c->fde); close(c->fd); c->fd = -1; kill(c->pid, SIGKILL); @@ -274,6 +275,7 @@ static NTSTATUS preopen_init_helpers(TALLOC_CTX *mem_ctx, size_t to_read, result->queue_max = queue_max; result->template_fname = NULL; result->fnum_sent = 0; + result->fnum_queue_end = 0; for (i=0; ihelpers[i].state = result; @@ -400,7 +402,7 @@ static int preopen_open(vfs_handle_struct *handle, return -1; } - if (flags != O_RDONLY) { + if ((flags & O_ACCMODE) != O_RDONLY) { return res; } -- Samba Shared Repository
autobuild[sn-devel-184]: intermittent test failure detected
The autobuild test system (on sn-devel-184) has detected an intermittent failing test in the current master tree. The autobuild log of the failure is available here: https://git.samba.org/autobuild.flakey.sn-devel-184/2019-06-28-1554/flakey.log The failure seems to be in the "samba-ad-dc-2" suite, whose build logs are available here: https://git.samba.org/autobuild.flakey.sn-devel-184/2019-06-28-1554/samba-ad-dc-2.stderr https://git.samba.org/autobuild.flakey.sn-devel-184/2019-06-28-1554/samba-ad-dc-2.stdout The top commit at the time of the failure was: commit fee8cf326bfe240d3a8720569eab43f474349aff Author: Michael Adam Date: Thu Jun 20 15:14:57 2019 +0200 vfs:glusterfs_fuse: treat ENOATTR as ENOENT The original implementation of the virtual xattr get_real_filename in gluster was misusing the ENOENT errno as the authoritative anwer that the file/dir that we were asking the real filename for does not exist. But since the getxattr call is done on the parent directory, this is a violation of the getxattr API which uses ENOENT for the case that the file/dir that the getxattr call is done against does not exist. Now after a recent regression for fuse-mount re-exports due to gluster mapping ENOENT to ESTALE in the fuse-bridge, the gluster implementation is changed to more correctly return ENOATTR if the requested file does not exist. This patch changes the glusterfs_fuse vfs module to treat ENOATTR as ENOENT to be fully functional again with latest gluster. - Without this patch, samba against a new gluster will work correctly, but the get_real_filename optimization for a non-existing entry is lost. - With this patch, Samba will not work correctly any more against very old gluster servers: Those (correctly) returned ENOATTR always, which Samba originally interpreted as EOPNOTSUPP, triggering the expensive directory scan. With this patch, ENOATTR is interpreted as ENOENT, the authoritative answer that the requested entry does not exist, which is wrong unless it really does not exist. Signed-off-by: Michael Adam Reviewed-by: Guenther Deschner Autobuild-User(master): Günther Deschner Autobuild-Date(master): Fri Jun 28 12:52:03 UTC 2019 on sn-devel-184 and the last 50 lines of the stdout log were: badPwdCount = '3' lockoutTime = '132062107907405560' badPasswordTime = '132062107907405560' Failed to get kerberos credentials (kerberos required): kinit for lockout1krb5@SAMBADOMAIN failed (Preauthentication failed) Wrong username or password: kinit for lockout1krb5@SAMBADOMAIN failed (Preauthentication failed) gensec_spnego_create_negTokenInit_step: gssapi_krb5: creating NEG_TOKEN_INIT for ldap/rodc failed (next[(null)]): NT_STATUS_LOGON_FAILURE Failed to bind - LDAP client internal error: NT_STATUS_LOGON_FAILURE Failed to connect to 'ldap://rodc' with backend 'ldap': LDAP client internal error: NT_STATUS_LOGON_FAILURE -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= badPwdCount = '3' lockoutTime = '132062107907405560' badPasswordTime = '132062107907405560' Failed to get kerberos credentials (kerberos required): kinit for lockout1krb5@SAMBADOMAIN failed (Preauthentication failed) Wrong username or password: kinit for lockout1krb5@SAMBADOMAIN failed (Preauthentication failed) gensec_spnego_create_negTokenInit_step: gssapi_krb5: creating NEG_TOKEN_INIT for ldap/rodc failed (next[(null)]): NT_STATUS_LOGON_FAILURE Failed to bind - LDAP client internal error: NT_STATUS_LOGON_FAILURE Failed to connect to 'ldap://rodc' with backend 'ldap': LDAP client internal error: NT_STATUS_LOGON_FAILURE -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= badPwdCount = '3' lockoutTime = '132062107907405560' badPasswordTime = '132062107907405560' UNEXPECTED(failure): samba4.ldap.rodc_rwdc.python(rodc).__main__.RodcRwdcCachedTests.test_login_lockout_krb5(rodc:local) REASON: Exception: Exception: Traceback (most recent call last): File "/memdisk/autobuild/fl/b2864834/samba-ad-dc-2/source4/dsdb/tests/python/rodc_rwdc.py", line 305, in test_login_lockout_krb5 self._test_login_lockout_rodc_rwdc(self.lockout1krb5_creds, userdn) File "/memdisk/autobuild/fl/b2864834/samba-ad-dc-2/source4/dsdb/tests/python/rodc_rwdc.py", line 556, in _test_login_lockout_rodc_rwdc self.fail() AssertionError: None FAILED (1 failures, 0 errors and 0 unexpected successes in 0 testsuites) A summary with detailed information can be found in: ./bin/ab/summary TOP 10 slowest tests samba4.ldap.large_ldap.gssapi.python(vampire_dc)(vampire_dc) -> 299 samba.wbinfo_sids2xids.(rodc:local)(rodc:local) -> 32 samba.tests.ntlm_auth(rodc:local) -> 15 samba.tests.dns(rodc:local) -> 8 samba.tests.py_credentials(vampire_dc) -> 6 samba4.ldap.rodc.python(rodc)(rodc) -> 6 samba.tests.dns(vampire_dc:local) -> 5
[SCM] Samba Shared Repository - branch master updated
The branch, master has been updated via fee8cf326bf vfs:glusterfs_fuse: treat ENOATTR as ENOENT via 8899eb21d48 vfs:glusterfs: treat ENOATTR as ENOENT from 6e5bff80a0a s3:notifyd: Handle sigup in notifyd to reparse smb.conf https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit fee8cf326bfe240d3a8720569eab43f474349aff Author: Michael Adam Date: Thu Jun 20 15:14:57 2019 +0200 vfs:glusterfs_fuse: treat ENOATTR as ENOENT The original implementation of the virtual xattr get_real_filename in gluster was misusing the ENOENT errno as the authoritative anwer that the file/dir that we were asking the real filename for does not exist. But since the getxattr call is done on the parent directory, this is a violation of the getxattr API which uses ENOENT for the case that the file/dir that the getxattr call is done against does not exist. Now after a recent regression for fuse-mount re-exports due to gluster mapping ENOENT to ESTALE in the fuse-bridge, the gluster implementation is changed to more correctly return ENOATTR if the requested file does not exist. This patch changes the glusterfs_fuse vfs module to treat ENOATTR as ENOENT to be fully functional again with latest gluster. - Without this patch, samba against a new gluster will work correctly, but the get_real_filename optimization for a non-existing entry is lost. - With this patch, Samba will not work correctly any more against very old gluster servers: Those (correctly) returned ENOATTR always, which Samba originally interpreted as EOPNOTSUPP, triggering the expensive directory scan. With this patch, ENOATTR is interpreted as ENOENT, the authoritative answer that the requested entry does not exist, which is wrong unless it really does not exist. Signed-off-by: Michael Adam Reviewed-by: Guenther Deschner Autobuild-User(master): Günther Deschner Autobuild-Date(master): Fri Jun 28 12:52:03 UTC 2019 on sn-devel-184 commit 8899eb21d48b7077328ae560490f9fb9715a6b83 Author: Michael Adam Date: Thu Jun 20 15:14:57 2019 +0200 vfs:glusterfs: treat ENOATTR as ENOENT The original implementation of the virtual xattr get_real_filename in gluster was misusing the ENOENT errno as the authoritative anwer that the file/dir that we were asking the real filename for does not exist. But since the getxattr call is done on the parent directory, this is a violation of the getxattr API which uses ENOENT for the case that the file/dir that the getxattr call is done against does not exist. Now after a recent regression for fuse-mount re-exports due to gluster mapping ENOENT to ESTALE in the fuse-bridge, the gluster implementation is changed to more correctly return ENOATTR if the requested file does not exist. This patch changes the glusterfs vfs module to treat ENOATTR as ENOENT to be fully functional again with latest gluster. - Without this patch, samba against a new gluster will work correctly, but the get_real_filename optimization for a non-existing entry is lost. - With this patch, Samba will not work correctly any more against very old gluster servers: Those (correctly) returned ENOATTR always, which Samba originally interpreted as EOPNOTSUPP, triggering the expensive directory scan. With this patch, ENOATTR is interpreted as ENOENT, the authoritative answer that the requested entry does not exist, which is wrong unless it really does not exist. Signed-off-by: Michael Adam Reviewed-by: Guenther Deschner --- Summary of changes: source3/modules/vfs_glusterfs.c | 2 +- source3/modules/vfs_glusterfs_fuse.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c index e8617215355..95f32f9d0a6 100644 --- a/source3/modules/vfs_glusterfs.c +++ b/source3/modules/vfs_glusterfs.c @@ -1473,7 +1473,7 @@ static int vfs_gluster_get_real_filename(struct vfs_handle_struct *handle, GLUSTER_NAME_MAX + 1); if (ret == -1) { if (errno == ENOATTR) { - errno = EOPNOTSUPP; + errno = ENOENT; } return -1; } diff --git a/source3/modules/vfs_glusterfs_fuse.c b/source3/modules/vfs_glusterfs_fuse.c index d92f5e2b08b..51515aa0df4 100644 --- a/source3/modules/vfs_glusterfs_fuse.c +++ b/source3/modules/vfs_glusterfs_fuse.c @@ -45,7 +45,7 @@ static int vfs_gluster_fuse_get_real_filename(struct vfs_handle_struct *handle, ret = getxattr(path, key_buf, val_buf,