IMPALA-5187, IMPALA-5208: Bump Breakpad Version, undo IMPALA-3794

This change switches to a new Breakpad version, which includes fixes for
Breakpad bugs #681 and #728. The toolchain change was reviewed here:
https://gerrit.cloudera.org/6866

The change also undoes the workaround introduced in IMPALA-3794.

In addition to running test_breakpad.py in a loop for a while, I tested
Then I verified that the test fails with the old toolchain version
(88e5b2) and works with the new one (ffe3e4).

To test #728 I added a sleep() call before SendContinueSignalToChild()
and then killed the parent process, manually observing that the child
would die, too.

Change-Id: Ic541ccd565f2bb51f68c085747fc47ae8c905d19
Reviewed-on: http://gerrit.cloudera.org:8080/6883
Reviewed-by: Lars Volker <[email protected]>
Tested-by: Impala Public Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/8afb5904
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/8afb5904
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/8afb5904

Branch: refs/heads/master
Commit: 8afb59045eb5c5a69f11ac955e16d08e98277b40
Parents: d1910a3
Author: Lars Volker <[email protected]>
Authored: Sat May 13 13:37:32 2017 +0200
Committer: Impala Public Jenkins <[email protected]>
Committed: Wed May 17 15:19:12 2017 +0000

----------------------------------------------------------------------
 bin/impala-config.sh                  |  4 ++--
 tests/custom_cluster/test_breakpad.py | 15 +++++----------
 2 files changed, 7 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/8afb5904/bin/impala-config.sh
----------------------------------------------------------------------
diff --git a/bin/impala-config.sh b/bin/impala-config.sh
index 467451b..86a115e 100755
--- a/bin/impala-config.sh
+++ b/bin/impala-config.sh
@@ -72,13 +72,13 @@ fi
 # moving to a different build of the toolchain, e.g. when a version is bumped 
or a
 # compile option is changed. The build id can be found in the output of the 
toolchain
 # build jobs, it is constructed from the build number and toolchain git hash 
prefix.
-export IMPALA_TOOLCHAIN_BUILD_ID=386-57eed04522
+export IMPALA_TOOLCHAIN_BUILD_ID=390-07ebc4fbe0
 # Versions of toolchain dependencies.
 # -----------------------------------
 export IMPALA_AVRO_VERSION=1.7.4-p4
 export IMPALA_BINUTILS_VERSION=2.26.1
 export IMPALA_BOOST_VERSION=1.57.0-p1
-export IMPALA_BREAKPAD_VERSION=88e5b2c8806bac3f2c80d2fe80094be5bd371601-p2
+export IMPALA_BREAKPAD_VERSION=ffe3e478657dc7126fca6329dfcedc49f4c726d9-p1
 export IMPALA_BZIP2_VERSION=1.0.6-p2
 export IMPALA_CMAKE_VERSION=3.2.3-p1
 export IMPALA_CRCUTIL_VERSION=440ba7babeff77ffad992df3a10c767f184e946e

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/8afb5904/tests/custom_cluster/test_breakpad.py
----------------------------------------------------------------------
diff --git a/tests/custom_cluster/test_breakpad.py 
b/tests/custom_cluster/test_breakpad.py
index bf480e9..5479a77 100644
--- a/tests/custom_cluster/test_breakpad.py
+++ b/tests/custom_cluster/test_breakpad.py
@@ -143,14 +143,9 @@ class TestBreakpad(CustomClusterTestSuite):
   def count_all_minidumps(self, base_dir=None):
     return sum((self.count_minidumps(daemon, base_dir) for daemon in DAEMONS))
 
-  def assert_num_minidumps_for_all_daemons(self, base_dir=None):
+  def assert_num_minidumps_for_all_daemons(self, cluster_size, base_dir=None):
     self.assert_num_logfile_entries(1)
-    # IMPALA-3794 / Breakpad-681: Weak minidump ID generation can lead to name 
conflicts,
-    # so that one process overwrites the minidump of others. See IMPALA-3794 
for more
-    # information.
-    # TODO: Change this here and elsewhere in this file to expect 
'cluster_size' minidumps
-    # once Breakpad-681 has been fixed.
-    assert self.count_minidumps('impalad', base_dir) >= 1
+    assert self.count_minidumps('impalad', base_dir) == cluster_size
     assert self.count_minidumps('statestored', base_dir) == 1
     assert self.count_minidumps('catalogd', base_dir) == 1
 
@@ -169,7 +164,7 @@ class TestBreakpad(CustomClusterTestSuite):
     assert self.count_all_minidumps() == 0
     cluster_size = self.get_num_processes('impalad')
     self.kill_cluster(SIGSEGV)
-    self.assert_num_minidumps_for_all_daemons()
+    self.assert_num_minidumps_for_all_daemons(cluster_size)
 
   @pytest.mark.execute_serially
   def test_sigusr1_writes_minidump(self):
@@ -188,7 +183,7 @@ class TestBreakpad(CustomClusterTestSuite):
     self.execute_query_expect_success(client, "SELECT COUNT(*) FROM 
functional.alltypes")
     # Kill the cluster. Sending SIGKILL will not trigger minidumps to be 
written.
     self.kill_cluster(SIGKILL)
-    self.assert_num_minidumps_for_all_daemons()
+    self.assert_num_minidumps_for_all_daemons(cluster_size)
 
   @pytest.mark.execute_serially
   def test_minidump_relative_path(self):
@@ -203,7 +198,7 @@ class TestBreakpad(CustomClusterTestSuite):
     assert self.count_all_minidumps(minidump_base_dir) == 0
     cluster_size = self.get_num_processes('impalad')
     self.kill_cluster(SIGSEGV)
-    self.assert_num_minidumps_for_all_daemons(minidump_base_dir)
+    self.assert_num_minidumps_for_all_daemons(cluster_size, minidump_base_dir)
     shutil.rmtree(minidump_base_dir)
 
   @pytest.mark.execute_serially

Reply via email to