Почему dev_appserver.py (сервер приложений App Engine) зависает в ожидании запроса? - PullRequest
8 голосов
/ 04 февраля 2011

В последнее время я вижу эту ошибку все чаще и чаще.Я использую браузер Chrome dev-channel на Ubuntu 10.10.Когда я обновляю веб-страницу - кажется, что dev_appserver зависает.После истечения времени ожидания запрос завершается.

Если я набираю CTRL-C в окне терминала сервера приложений, кажется, что он "открепляет" сервер после отображения этой обратной трассировки:

Exception happened during processing of request from ('192.168.1.19', 48238)
Traceback (most recent call last):
  File "/usr/local/lib/python2.5/SocketServer.py", line 222, in handle_request
    self.process_request(request, client_address)
  File "/usr/local/lib/python2.5/SocketServer.py", line 241, in process_request
    self.finish_request(request, client_address)
  File "/usr/local/lib/python2.5/SocketServer.py", line 254, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 3123, in __init__
    BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "/usr/local/lib/python2.5/SocketServer.py", line 522, in __init__
    self.handle()
  File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 316, in handle
    self.handle_one_request()
  File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 299, in handle_one_request
    self.raw_requestline = self.rfile.readline()
  File "/usr/local/lib/python2.5/socket.py", line 346, in readline
    data = self._sock.recv(self._rbufsize)
KeyboardInterrupt

Как ни странно, когда я запустил Firefox, чтобы посмотреть, связан ли он только с Chrome, проблема исчезла (как в Firefox, так и в Chrome).

Я интерпретирую это как браузер, поддерживающий предыдущий запрос открытымне полностью вытягивая все байты из ответа.Поскольку dev_server является однопоточным, он не будет обрабатывать дальнейшие запросы до тех пор, пока не истечет срок действия старого.

У кого-нибудь есть здесь другие идеи?Это очень раздражает, когда это происходит, так как я должен убить и перезапустить app_devserver, чтобы продолжить работу.

1 Ответ

6 голосов
/ 04 февраля 2011

В группах есть несколько сообщений на эту тему. Очевидно, что Chrome будет отправлять несколько запросов, а затем каким-то образом получится, что SDK блокирует один из запросов.

Я видел нескольких пользователей скажем , запускающих Chrome с помощью --disable-preconnect help.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...