]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
upgradedns: ensure lmdb lock files linked
authorGary Lockyer <gary@catalyst.net.nz>
Thu, 19 Dec 2019 03:31:46 +0000 (16:31 +1300)
committerKarolin Seeger <kseeger@samba.org>
Tue, 14 Jan 2020 08:30:25 +0000 (08:30 +0000)
Ensure that the '-lock' files for the dns partitions as well as the data
files are linked when running
  samba_dnsupgrade --dns-backend=BIND9_DLZ
failure to create these links can cause corruption of the corresponding
data file.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14199

Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 0bd479140c18ab79479ced4f25f366744c3afe18)

python/samba/provision/sambadns.py
selftest/knownfail.d/bug-14199 [deleted file]

index 9b245608c63ff2e81671982aedcb464ed839980c..239c99ff0b9f2ea9ef6e4d30aec9173f7e871a26 100644 (file)
@@ -858,9 +858,19 @@ def create_samdb_copy(samdb, logger, paths, names, domainsid, domainguid):
                 os.path.join(dns_samldb_dir, metadata_file))
         os.link(os.path.join(private_dir, domainzone_file),
                 os.path.join(dns_dir, domainzone_file))
+        if backend_store == "mdb":
+            # If the file is an lmdb data file need to link the
+            # lock file as well
+            os.link(os.path.join(private_dir, domainzone_file + "-lock"),
+                    os.path.join(dns_dir, domainzone_file + "-lock"))
         if forestzone_file:
             os.link(os.path.join(private_dir, forestzone_file),
                     os.path.join(dns_dir, forestzone_file))
+            if backend_store == "mdb":
+                # If the database file is an lmdb data file need to link the
+                # lock file as well
+                os.link(os.path.join(private_dir, forestzone_file + "-lock"),
+                        os.path.join(dns_dir, forestzone_file + "-lock"))
     except OSError:
         logger.error(
             "Failed to setup database for BIND, AD based DNS cannot be used")
diff --git a/selftest/knownfail.d/bug-14199 b/selftest/knownfail.d/bug-14199
deleted file mode 100644 (file)
index f950891..0000000
+++ /dev/null
@@ -1 +0,0 @@
-^samba.tests.samba_upgradedns_lmdb.samba.tests.samba_upgradedns_lmdb.