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
