Changeset 90246 in webkit


Ignore:
Timestamp:
Jul 1, 2011 11:14:37 AM (13 years ago)
Author:
abarth@webkit.org
Message:

2011-07-01 Adam Barth <abarth@webkit.org>

Reviewed by Darin Adler.

ReportCrash destabilizes new-run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=63795

ReportCrash chews up too many system resources that it destablizes
tests run concurrently. This patch causes us to spin down all the
worker processes when ReportCrash is running.

Also, this patch causes the master process to tell the user we're
waiting for the crash reporter rather than having that be the worker's
job. This stops the user from getting spammed with too many "waiting
for crash reporter" messages and also cleans up some minor UI issues
with the meter.

  • Scripts/webkitpy/layout_tests/layout_package/manager.py:
  • Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
  • Scripts/webkitpy/layout_tests/port/base.py:
  • Scripts/webkitpy/layout_tests/port/server_process.py:
Location:
trunk/Tools
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r90239 r90246  
     12011-07-01  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        ReportCrash destabilizes new-run-webkit-tests
     6        https://bugs.webkit.org/show_bug.cgi?id=63795
     7
     8        ReportCrash chews up too many system resources that it destablizes
     9        tests run concurrently.  This patch causes us to spin down all the
     10        worker processes when ReportCrash is running.
     11
     12        Also, this patch causes the master process to tell the user we're
     13        waiting for the crash reporter rather than having that be the worker's
     14        job.  This stops the user from getting spammed with too many "waiting
     15        for crash reporter" messages and also cleans up some minor UI issues
     16        with the meter.
     17
     18        * Scripts/webkitpy/layout_tests/layout_package/manager.py:
     19        * Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
     20        * Scripts/webkitpy/layout_tests/port/base.py:
     21        * Scripts/webkitpy/layout_tests/port/server_process.py:
     22
    1232011-07-01  Adam Roben  <aroben@apple.com>
    224
  • trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py

    r90214 r90246  
    669669        try:
    670670            while not self.is_done():
    671                 # FIXME: Do we need to run in a loop anymore?
     671                if self._port.executive().running_pids(self._port.is_crash_reporter):
     672                    self._printer.print_update("Waiting for crash reporter ...")
     673                    self._port.executive().wait_newest(self._port.is_crash_reporter)
    672674                manager_connection.run_message_loop(delay_secs=1.0)
    673675
     
    783785        start_time = time.time()
    784786
    785         interrupted, keyboard_interrupted, thread_timings, test_timings, \
    786             individual_test_timings = (
    787             self._run_tests(self._test_files_list, result_summary))
     787        interrupted, keyboard_interrupted, thread_timings, test_timings, individual_test_timings = self._run_tests(self._test_files_list, result_summary)
    788788
    789789        # We exclude the crashes from the list of results to retry, because
  • trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py

    r90138 r90246  
    126126
    127127    def _run_compare_test(self):
     128        # Before running the test, we wait for any crash reporters to finish
     129        # running. On Mac, ReportCrash chews up a bunch of resources and
     130        # causes the tests to become unstable, so we don't want to run in
     131        # parallel with ReportCrash.
     132        self._port.executive().wait_newest(self._port.is_crash_reporter)
    128133        driver_output = self._driver.run_test(self._driver_input())
    129134        expected_driver_output = self._expected_driver_output()
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/base.py

    r90191 r90246  
    139139        self.set_option_default('use_apache', self._default_to_apache())
    140140
     141    def executive(self):
     142        return self._executive
     143
    141144    def wdiff_available(self):
    142145        if self._wdiff_available is None:
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/server_process.py

    r90191 r90246  
    173173            return
    174174        try:
    175             self._log('Sampling %s process... (use --no-sample-on-timeout to skip this step)' % self._name)
    176175            hang_report = os.path.join(self._port.results_directory(), "%s-%s.sample.txt" % (self._name, self._proc.pid))
    177176            self._executive.run_command([
     
    198197            now = time.time()
    199198            if now > deadline:
    200                 if self._executive.running_pids(self._port.is_crash_reporter):
    201                     self._log('Waiting for crash reporter...')
    202                     self._executive.wait_newest(self._port.is_crash_reporter)
    203                     if not self.crashed:
    204                         self._check_for_crash()
     199                self._executive.wait_newest(self._port.is_crash_reporter)
     200                if not self.crashed:
     201                    self._check_for_crash()
    205202                self.timed_out = True
    206203                if not self.crashed:
Note: See TracChangeset for help on using the changeset viewer.