Бутылка микро рамки внезапно вылетает

У меня есть веб-приложение, которое я разработал с использованием бутылки микро рамки. Однако он часто падает, и все они внезапно без каких-либо действий (без использования веб-приложения) . Поэтому я просмотрел файл журналов и обнаружил следующие ошибки (я понятия не имею, что является причиной этих ошибок):

Traceback (most recent call last):
  File "/home/hamoud/lib/python2.7/bottle.py", line 2699, in run
    server.run(app)
  File "/home/hamoud/lib/python2.7/bottle.py", line 2385, in run
    srv = make_server(self.host, self.port, handler, **self.options)
  File "/usr/local/lib/python2.7/wsgiref/simple_server.py", line 144, in make_server
    server = server_class((host, port), handler_class)
  File "/usr/local/lib/python2.7/SocketServer.py", line 419, in __init__
    self.server_bind()
  File "/usr/local/lib/python2.7/wsgiref/simple_server.py", line 48, in server_bind
    HTTPServer.server_bind(self)
  File "/usr/local/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
  File "/usr/local/lib/python2.7/SocketServer.py", line 430, in server_bind
    self.socket.bind(self.server_address)
  File "/usr/local/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
TypeError: 'int' object is not callable

а также

Traceback (most recent call last):
  File "interface.py", line 29, in <module>
    run(host="localhost", port=32471, reloader=True, debug=True)
  File "/home/hamoud/lib/python2.7/bottle.py", line 2657, in run
    os.utime(lockfile, None) # I am alive!
OSError: [Errno 2] No such file or directory: '/tmp/bottle.gQmJc8.lock'

Однако вторая ошибка не приводит к сбою приложения (приложение продолжит работать), но для первой требуется ручная работа (снова запустите приложение) .

Я мог бы запланировать задачу, используя задание cron для запуска приложения при его падении. но я хотел бы знать, в чем проблема в моем приложении.

1 ответ

Несколько идей приходят на ум:

  1. Может ли быть другая программа на вашем компьютере (например, задание cron), которая удаляет файлы из /tmp?

  2. Используете ли вы последнюю версию бутылки? (По номеру строки в вашей трассировке стека это выглядит так, как будто вас нет.)

  3. Если ничего не работает, попробуйте запустить без reloader=True (или использовать reloader=False). Я посмотрел на код бутылки, и это изменение должно, по крайней мере, обойти проблему, даже если мы не знаем причину (пока).

Надеюсь, это поможет.

Другие вопросы по тегам