Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Affects: -1 lizardfs Please unblock lizardfs/3.10.4+dfsg-4 This upload fixes serious run-time regression preventing master node from synchronising with other nodes and/or loading metadata after upgrade. It is crucial to include this fix in order to avoid upgrade problems. Thank you. -- Cheers, Dmitry Smirnov GPG key : 4096R/52B6BBD953968D1B
diff --git a/debian/changelog b/debian/changelog
index 22ea9ae..eb8e428 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+lizardfs (3.10.4+dfsg-4) unstable; urgency=high
+
+ * New backported "526_gcc6.2.patch" to fix serious run-time regression.
+
+ -- Dmitry Smirnov <onlyjob@debian.org> Sat, 11 Mar 2017 14:35:50 +1100
+
lizardfs (3.10.4+dfsg-3) unstable; urgency=medium
* Build-Depends: libgtest-dev --> googletest (Closes: #844893).
diff --git a/debian/patches/526_gcc6.2.patch b/debian/patches/526_gcc6.2.patch
new file mode 100644
index 0000000..7b0b7d0
--- /dev/null
+++ b/debian/patches/526_gcc6.2.patch
@@ -0,0 +1,54 @@
+Last-Update: 2017-03-11
+Forwarded: not-needed
+Bug-Upstream: https://github.com/lizardfs/lizardfs/issues/526
+Origin: upstream, https://github.com/lizardfs/lizardfs/commit/422175eb1aa8c2a1e4d0727ee3fe8190e1ae1340
+From: Hazeman <hazeman@skytechnology.pl>
+Date: Mon, 6 Mar 2017 13:57:16 +0100
+Description: common: Fix aliasing issue in compact_vector
+ This commit fixes pointer/data storage aliasing issue that occurs in gcc 6.2.
+
+ Change-Id: I39307532f168eabfc1b39b81e6c1fbb8eb1b3fce
+
+--- a/src/common/compact_vector.h
++++ b/src/common/compact_vector.h
+@@ -162,10 +162,10 @@
+ }
+
+ private:
+ union {
+- pointer ptr_;
+- uint8_t data_[sizeof(pointer)];
++ volatile pointer ptr_;
++ uint8_t data_[sizeof(pointer)];
+ };
+ size_type size_;
+ };
+
+@@ -278,10 +278,10 @@
+ }
+
+ private:
+ union {
+- uint64_t ptr_;
+- uint8_t data_[8];
++ volatile uint64_t ptr_;
++ uint8_t data_[8];
+ };
+ #if !defined(NDEBUG) || defined(LIZARDFS_TEST_POINTER_OBFUSCATION)
+ pointer debug_ptr_;
+ #endif
+--- a/src/common/compact_vector_unittest.cc
++++ b/src/common/compact_vector_unittest.cc
+@@ -179,4 +179,12 @@
+
+ vec1.assign(6, 1);
+ EXPECT_NE(vec1.data(), (uint8_t *)&vec1);
+ }
++
++TEST(CompactVectorTest, GCC6) {
++ compact_vector<uint32_t> sessionid;
++ uint32_t val = 1978;
++
++ sessionid.push_back(val);
++ EXPECT_EQ(sessionid[0], val);
++}
diff --git a/debian/patches/series b/debian/patches/series
index 5d1ed75..bcb035e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,5 @@
2749_69686d59.diff
+526_gcc6.2.patch
#build-hurd.patch
conf-add-mfshdd-comment.patch
conf-default-ignoregid.patch
Attachment:
signature.asc
Description: This is a digitally signed message part.