From 8533da5619ef980f299787ec1e643fc0631532ee Mon Sep 17 00:00:00 2001 From: "mmoss@google.com" Date: Sat, 12 Dec 2009 00:05:19 +0000 Subject: Add a bit of error handling to web server shutdown. Review URL: http://codereview.chromium.org/494004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34393 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/tools/layout_tests/layout_package/platform_utils_linux.py | 9 +++++++-- webkit/tools/layout_tests/layout_package/platform_utils_mac.py | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/webkit/tools/layout_tests/layout_package/platform_utils_linux.py b/webkit/tools/layout_tests/layout_package/platform_utils_linux.py index fac1b97..a340dd2 100644 --- a/webkit/tools/layout_tests/layout_package/platform_utils_linux.py +++ b/webkit/tools/layout_tests/layout_package/platform_utils_linux.py @@ -141,8 +141,13 @@ def ShutDownHTTPServer(server_pid): stderr=null) null.close() else: - os.kill(server_pid, signal.SIGTERM) - #TODO(mmoss) Maybe throw in a SIGKILL just to be sure? + try: + os.kill(server_pid, signal.SIGTERM) + #TODO(mmoss) Maybe throw in a SIGKILL just to be sure? + except OSError: + # Sometimes we get a bad PID (e.g. from a stale httpd.pid file), so if + # kill fails on the given PID, just try to 'killall' web servers. + ShutDownHTTPServer(None) def KillProcess(pid): """Forcefully kill the process. diff --git a/webkit/tools/layout_tests/layout_package/platform_utils_mac.py b/webkit/tools/layout_tests/layout_package/platform_utils_mac.py index e0a78ee..7065a59 100644 --- a/webkit/tools/layout_tests/layout_package/platform_utils_mac.py +++ b/webkit/tools/layout_tests/layout_package/platform_utils_mac.py @@ -124,7 +124,13 @@ def ShutDownHTTPServer(server_pid): stderr=null) null.close() else: - os.kill(server_pid, signal.SIGTERM) + try: + os.kill(server_pid, signal.SIGTERM) + #TODO(mmoss) Maybe throw in a SIGKILL just to be sure? + except OSError: + # Sometimes we get a bad PID (e.g. from a stale httpd.pid file), so if + # kill fails on the given PID, just try to 'killall' web servers. + ShutDownHTTPServer(None) def KillProcess(pid): """Forcefully kill the process. -- cgit v1.1