Changeset 122615 in webkit
- Timestamp:
- Jul 13, 2012 12:08:27 PM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r122606 r122615 1 2012-07-13 Dirk Pranke <dpranke@chromium.org> 2 3 NRWT doesn't print exceptions 4 https://bugs.webkit.org/show_bug.cgi?id=91129 5 6 Reviewed by Ojan Vafai. 7 8 Although we printed exceptions in most cases, if an unexpected 9 exception (like a runtime error) was raised when creating a 10 port, we wouldn't. This patch fixes that, and also cleans up 11 how we were logging exceptions from the workers to be less 12 verbose. 13 14 Because of the corner cases where these errors are occurring, 15 it's difficult to write automated unit tests for them. I've 16 tested it quite a bit by hand, though. 17 18 * Scripts/webkitpy/common/message_pool.py: 19 (_MessagePool._close): 20 (_MessagePool._handle_worker_exception): 21 (_Worker.run): 22 (_Worker._raise): 23 * Scripts/webkitpy/layout_tests/controllers/manager.py: 24 (Manager._run_tests): 25 * Scripts/webkitpy/layout_tests/run_webkit_tests.py: 26 (main): 27 1 28 2012-07-13 Wei James <james.wei@intel.com> 2 29 -
trunk/Tools/Scripts/webkitpy/common/message_pool.py
r122517 r122615 129 129 self._workers = [] 130 130 if not self._running_inline: 131 # FIXME: This is a hack to get multiprocessing to not log tracebacks during shutdown :(. 132 multiprocessing.util._exiting = True 131 133 if self._messages_to_worker: 132 134 self._messages_to_worker.close() … … 147 149 if exception_type == KeyboardInterrupt: 148 150 raise exception_type(exception_value) 149 _log.error("%s raised %s('%s'):" % (150 source, exception_value.__class__.__name__, str(exception_value)))151 151 raise WorkerException(str(exception_value)) 152 152 … … 246 246 break 247 247 248 _log.debug("%s exiting" % self.name) 248 249 except Queue.Empty: 249 250 assert False, '%s: ran out of messages in worker queue.' % self.name 250 251 except KeyboardInterrupt, e: 251 exception_msg = ", interrupted" 252 if not self._running_inline: 253 _log.warning('worker exception') 254 self._raise(sys.exc_info()) 255 raise 252 self._raise(sys.exc_info()) 256 253 except Exception, e: 257 exception_msg = ", exception raised: %s" % str(e) 258 if not self._running_inline: 259 self._raise(sys.exc_info()) 260 raise 254 self._raise(sys.exc_info()) 261 255 finally: 262 _log.debug("%s exiting%s" % (self.name, exception_msg))263 256 try: 264 257 worker.stop() … … 280 273 281 274 def _raise(self, exc_info): 275 exception_type, exception_value, exception_traceback = exc_info 276 if self._running_inline: 277 raise exception_type, exception_value, exception_traceback 278 279 if exception_type == KeyboardInterrupt: 280 _log.debug("%s: interrupted, exiting" % self.name) 281 stack_utils.log_traceback(_log.debug, exception_traceback) 282 else: 283 _log.error("%s: %s('%s') raised:" % (self.name, exception_value.__class__.__name__, str(exception_value))) 284 stack_utils.log_traceback(_log.error, exception_traceback) 282 285 # Since tracebacks aren't picklable, send the extracted stack instead. 283 exception_type, exception_value, exception_traceback = exc_info284 stack_utils.log_traceback(_log.error, exception_traceback)285 286 stack = traceback.extract_tb(exception_traceback) 286 287 self._post(name='worker_exception', args=(exception_type, exception_value, stack), from_user=False) -
trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
r122513 r122615 783 783 _log.warning(e.reason) 784 784 interrupted = True 785 except :786 _log. error("Exception raised, exiting")785 except Exception, e: 786 _log.debug('%s("%s") raised, exiting' % (e.__class__.__name__, str(e))) 787 787 raise 788 788 finally: -
trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
r122542 r122615 36 36 import signal 37 37 import sys 38 import traceback 38 39 39 40 from webkitpy.common.host import Host … … 470 471 print >> sys.stderr, str(e) 471 472 return EXCEPTIONAL_EXIT_STATUS 473 except: 474 traceback.print_exc(file=sys.stderr) 475 raise 472 476 473 477 logging.getLogger().setLevel(logging.DEBUG if options.verbose else logging.INFO) … … 478 482 try: 479 483 sys.exit(main()) 480 except Exception, e:484 except BaseException, e: 481 485 if e.__class__ in (KeyboardInterrupt, TestRunInterruptedException): 482 486 sys.exit(INTERRUPTED_EXIT_STATUS)
Note: See TracChangeset
for help on using the changeset viewer.