RESOLVED FIXED 89734
run_webkit_tests.py failed with AttributeError(''NoneType' object has no attribute 'pid'')
https://bugs.webkit.org/show_bug.cgi?id=89734
Summary run_webkit_tests.py failed with AttributeError(''NoneType' object has no attr...
Fumitoshi Ukai
Reported 2012-06-21 21:04:26 PDT
run_webkit_tests.py failed with AttributeError(''NoneType' object has no attribute 'pid'') on Webkit Vista in chromium.webkit python.exe e:\b\build\slave\Webkit_Vista\build\src\webkit\tools\layout_tests\run_webkit_tests.py --no-show-results --no-new-test-results --verbose --full-results-html --clobber-old-results --exit-after-n-failures 5000 --exit-after-n-crashes-or-timeouts 100 --results-directory e:\b\build\slave\Webkit_Vista\build\layout-test-results --target Release --builder-name "Webkit Vista" --build-number 16253 --master-name ChromiumWebkit --build-name Webkit_Vista --build-directory e:\b\build\slave\Webkit_Vista\build\src\build --test-results-server test-results.appspot.com "" ... 20:14:16.836 4004 worker/3 raised AttributeError(''NoneType' object has no attribute 'pid''): 20:14:16.836 4004 layout_tests\controllers\manager_worker_broker.py:290 (in run) 20:14:16.836 4004 self._worker_connection.run_message_loop() 20:14:16.836 4004 layout_tests\controllers\manager_worker_broker.py:243 (in run_message_loop) 20:14:16.836 4004 self._broker.run_message_loop(self._run_topic, self._client, delay_secs) 20:14:16.836 4004 layout_tests\controllers\manager_worker_broker.py:175 (in run_message_loop) 20:14:16.836 4004 self._run_loop(topic_name, client, block=True, delay_secs=delay_secs) 20:14:16.836 4004 layout_tests\controllers\manager_worker_broker.py:189 (in _run_loop) 20:14:16.836 4004 self._dispatch_message(msg, client) 20:14:16.836 4004 layout_tests\controllers\manager_worker_broker.py:198 (in _dispatch_message) 20:14:16.836 4004 message_handler(message.src, *optargs) 20:14:16.882 4004 layout_tests\controllers\worker.py:137 (in handle_test_list) 20:14:16.882 4004 self._run_test(test_input) 20:14:16.882 4004 layout_tests\controllers\worker.py:164 (in _run_test) 20:14:16.882 4004 result = self.run_test_with_timeout(test_input, test_timeout_sec) 20:14:16.882 4004 layout_tests\controllers\worker.py:209 (in run_test_with_timeout) 20:14:16.882 4004 return self._run_test_in_this_thread(test_input) 20:14:16.882 4004 layout_tests\controllers\worker.py:294 (in _run_test_in_this_thread) 20:14:16.882 4004 return self.run_single_test(self._driver, test_input) 20:14:16.882 4004 layout_tests\controllers\worker.py:298 (in run_single_test) 20:14:16.882 4004 test_input, driver, self._name) 20:14:16.882 4004 layout_tests\controllers\single_test_runner.py:46 (in run_single_test) 20:14:16.882 4004 return runner.run() 20:14:16.882 4004 layout_tests\controllers\single_test_runner.py:105 (in run) 20:14:16.882 4004 return self._run_compare_test() 20:14:16.882 4004 layout_tests\controllers\single_test_runner.py:108 (in _run_compare_test) 20:14:16.882 4004 driver_output = self._driver.run_test(self._driver_input()) 20:14:16.882 4004 layout_tests\port\driver.py:220 (in run_test) 20:14:16.882 4004 return self._running_drivers[cmd_line_key].run_test(driver_input) 20:14:16.882 4004 layout_tests\port\chromium.py:550 (in run_test) 20:14:16.882 4004 return super(ChromiumDriver, self).run_test(driver_input) 20:14:16.882 4004 layout_tests\port\webkit.py:566 (in run_test) 20:14:16.882 4004 text, audio = self._read_first_block(deadline) # First block is either text or audio 20:14:16.882 4004 layout_tests\port\webkit.py:544 (in _read_first_block) 20:14:16.882 4004 block = self._read_block(deadline) 20:14:16.882 4004 layout_tests\port\webkit.py:627 (in _read_block) 20:14:16.882 4004 while not self.has_crashed(): 20:14:16.882 4004 layout_tests\port\chromium.py:490 (in has_crashed) 20:14:16.882 4004 return super(ChromiumDriver, self).has_crashed() 20:14:16.882 4004 layout_tests\port\webkit.py:500 (in has_crashed) 20:14:16.882 4004 self._crashed_pid = self._server_process.pid() 20:14:16.882 4004 layout_tests\port\server_process.py:80 (in pid) 20:14:16.882 4004 return self._proc.pid Traceback (most recent call last): File "e:\b\depot_tools\python_bin\lib\multiprocessing\queues.py", line 238, in _feed send(obj) IOError: [Errno 109] The pipe has been ended 20:14:16.898 4004 Stopping HTTP server ... 20:14:16.898 4004 Attempting to shut down lighttpd server at pid 464 20:14:17.007 4004 "taskkill.exe /f /pid 464" took 0.09s 20:14:17.007 4004 Waiting for action: <bound method Lighttpd._check_and_kill of <webkitpy.layout_tests.servers.http_server.Lighttpd object at 0x05DA92F0>> 20:14:18.007 4004 lighttpd server at pid 464 stopped 20:14:18.007 4004 Stopping WebSocket server ... 20:14:18.007 4004 Attempting to shut down pywebsocket server at pid 2772 20:14:18.101 4004 "taskkill.exe /f /pid 2772" took 0.09s 20:14:18.101 4004 Waiting for action: <bound method PyWebSocket._check_and_kill of <webkitpy.layout_tests.servers.websocket_server.PyWebSocket object at 0x05DA91F0>> 20:14:19.101 4004 pywebsocket server at pid 2772 stopped 20:14:19.101 4004 Releasing server lock ... 20:14:19.101 4004 Removing lock file: c:\users\chrome~2\appdata\local\temp\WebKitHttpd.lock.0 program finished with exit code 254 elapsedTime=434.486000 http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Vista/builds/16253 http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Vista/builds/16253/steps/webkit_tests/logs/stdio
Attachments
Patch (3.74 KB, patch)
2012-06-22 15:18 PDT, Dirk Pranke
no flags
Fumitoshi Ukai
Comment 1 2012-06-21 21:24:48 PDT
Also failed on Win7 python.exe e:\b\build\slave\Webkit_Win7\build\src\webkit\tools\layout_tests\run_webkit_tests.py --no-show-results --no-new-test-results --verbose --full-results-html --clobber-old-results --exit-after-n-failures 5000 --exit-after-n-crashes-or-timeouts 100 --results-directory e:\b\build\slave\Webkit_Win7\build\layout-test-results --target Release --builder-name "Webkit Win7" --build-number 17860 --master-name ChromiumWebkit --build-name Webkit_Win7 --build-directory e:\b\build\slave\Webkit_Win7\build\src\build --test-results-server test-results.appspot.com "" ... 20:50:04.970 1920 worker/1 raised AttributeError(''NoneType' object has no attribute 'pid''): 20:50:04.970 1920 layout_tests\controllers\manager_worker_broker.py:290 (in run) 20:50:04.970 1920 self._worker_connection.run_message_loop() 20:50:04.970 1920 layout_tests\controllers\manager_worker_broker.py:243 (in run_message_loop) 20:50:04.970 1920 self._broker.run_message_loop(self._run_topic, self._client, delay_secs) 20:50:04.970 1920 layout_tests\controllers\manager_worker_broker.py:175 (in run_message_loop) 20:50:04.970 1920 self._run_loop(topic_name, client, block=True, delay_secs=delay_secs) 20:50:04.970 1920 layout_tests\controllers\manager_worker_broker.py:189 (in _run_loop) 20:50:04.970 1920 self._dispatch_message(msg, client) 20:50:04.970 1920 layout_tests\controllers\manager_worker_broker.py:198 (in _dispatch_message) 20:50:04.970 1920 message_handler(message.src, *optargs) 20:50:04.970 1920 layout_tests\controllers\worker.py:137 (in handle_test_list) 20:50:04.970 1920 self._run_test(test_input) 20:50:04.970 1920 layout_tests\controllers\worker.py:164 (in _run_test) 20:50:05.064 1920 result = self.run_test_with_timeout(test_input, test_timeout_sec) 20:50:05.064 1920 layout_tests\controllers\worker.py:209 (in run_test_with_timeout) 20:50:05.064 1920 return self._run_test_in_this_thread(test_input) 20:50:05.064 1920 layout_tests\controllers\worker.py:294 (in _run_test_in_this_thread) 20:50:05.064 1920 return self.run_single_test(self._driver, test_input) 20:50:05.064 1920 layout_tests\controllers\worker.py:298 (in run_single_test) 20:50:05.064 1920 test_input, driver, self._name) 20:50:05.064 1920 layout_tests\controllers\single_test_runner.py:46 (in run_single_test) 20:50:05.064 1920 return runner.run() 20:50:05.064 1920 layout_tests\controllers\single_test_runner.py:105 (in run) 20:50:05.064 1920 return self._run_compare_test() 20:50:05.064 1920 layout_tests\controllers\single_test_runner.py:108 (in _run_compare_test) 20:50:05.064 1920 driver_output = self._driver.run_test(self._driver_input()) 20:50:05.064 1920 layout_tests\port\driver.py:220 (in run_test) 20:50:05.064 1920 return self._running_drivers[cmd_line_key].run_test(driver_input) 20:50:05.064 1920 layout_tests\port\chromium.py:550 (in run_test) 20:50:05.064 1920 return super(ChromiumDriver, self).run_test(driver_input) http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Win7/builds/17860 http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Win7/builds/17860/steps/webkit_tests/logs/stdio
Fumitoshi Ukai
Comment 2 2012-06-21 22:42:08 PDT
in webkitpy/layout_tests/ports/server_process.py if write failed -> stop() -> _reset() -> _proc = None -> _crashed = True so, has_crashed() will return True. but calling pid() would fail to access pid of None. we should save pid before calling _reset(), so that pid() returns that value if _proc is None or new crashed_pid() method returns that value ?
Dirk Pranke
Comment 3 2012-06-22 15:18:59 PDT
Dirk Pranke
Comment 4 2012-06-22 15:26:08 PDT
Comment on attachment 149118 [details] Patch Clearing flags on attachment: 149118 Committed r121061: <http://trac.webkit.org/changeset/121061>
Dirk Pranke
Comment 5 2012-06-22 15:26:19 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.