Title: [88040] trunk/Tools
Revision
88040
Author
[email protected]
Date
2011-06-03 12:43:52 -0700 (Fri, 03 Jun 2011)

Log Message

2011-06-03  Dirk Pranke  <[email protected]>

        Reviewed by Tony Chang.

        Worker may not be stopped after LT.
        https://bugs.webkit.org/show_bug.cgi?id=61847

        Re-submit a variant of the first fix for this bug. It's possible
        that actually calling cleanup() in the worker threads was taking
        too long and we triggered the assertions in the manager thread.

        I've bumped up the timeout in the manager and added better
        diagnostics. I also cleaned up the cleanup() code a bit because
        there was some unnecessary if-checks.

        * Scripts/webkitpy/layout_tests/layout_package/manager.py:
        * Scripts/webkitpy/layout_tests/layout_package/worker.py:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (88039 => 88040)


--- trunk/Tools/ChangeLog	2011-06-03 19:35:34 UTC (rev 88039)
+++ trunk/Tools/ChangeLog	2011-06-03 19:43:52 UTC (rev 88040)
@@ -2,6 +2,24 @@
 
         Reviewed by Tony Chang.
 
+        Worker may not be stopped after LT.
+        https://bugs.webkit.org/show_bug.cgi?id=61847
+
+        Re-submit a variant of the first fix for this bug. It's possible
+        that actually calling cleanup() in the worker threads was taking
+        too long and we triggered the assertions in the manager thread.
+
+        I've bumped up the timeout in the manager and added better
+        diagnostics. I also cleaned up the cleanup() code a bit because
+        there was some unnecessary if-checks.
+
+        * Scripts/webkitpy/layout_tests/layout_package/manager.py:
+        * Scripts/webkitpy/layout_tests/layout_package/worker.py:
+
+2011-06-03  Dirk Pranke  <[email protected]>
+
+        Reviewed by Tony Chang.
+
         nrwt: fix duplicate logging regression
         https://bugs.webkit.org/show_bug.cgi?id=61981
 

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py (88039 => 88040)


--- trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py	2011-06-03 19:35:34 UTC (rev 88039)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py	2011-06-03 19:43:52 UTC (rev 88040)
@@ -674,8 +674,10 @@
             # Make sure all of the workers have shut down (if possible).
             for worker_state in self._worker_states.values():
                 if not worker_state.wedged and worker_state.worker_connection.is_alive():
-                    worker_state.worker_connection.join(0.5)
-                    assert not worker_state.worker_connection.is_alive()
+                    _log.debug('Waiting for worker %d to exit' % worker_state.number)
+                    worker_state.worker_connection.join(5.0)
+                    if worker_state.worker_connection.is_alive():
+                        _log.error('Worked %d did not exit in time.' % worker_state.number)
 
         except KeyboardInterrupt:
             _log.info("Interrupted, exiting")

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/worker.py (88039 => 88040)


--- trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/worker.py	2011-06-03 19:35:34 UTC (rev 88039)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/worker.py	2011-06-03 19:43:52 UTC (rev 88040)
@@ -110,6 +110,7 @@
                 self._worker_connection.post_message('exception',
                     (exception_type, exception_value, None))
             self._worker_connection.post_message('done')
+            self.cleanup()
 
     def handle_test_list(self, src, list_name, test_list):
         if list_name == "tests_to_http_lock":
@@ -144,13 +145,13 @@
         self.clean_up_after_test(test_input, result)
 
     def cleanup(self):
-        if self._driver:
-            self.kill_driver()
-        if self._has_http_lock:
-            self.stop_servers_with_lock()
+        _log.debug("cleaning up")
+        self.kill_driver()
+        self.stop_servers_with_lock()
         if self._tests_run_file:
             self._tests_run_file.close()
             self._tests_run_file = None
+        _log.debug("done cleaning up")
 
     def timeout(self, test_input):
         """Compute the appropriate timeout value for a test."""
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to