Бутылка микро рамки внезапно вылетает
У меня есть веб-приложение, которое я разработал с использованием бутылки микро рамки. Однако он часто падает, и все они внезапно без каких-либо действий (без использования веб-приложения) . Поэтому я просмотрел файл журналов и обнаружил следующие ошибки (я понятия не имею, что является причиной этих ошибок):
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 ответ
Несколько идей приходят на ум:
Может ли быть другая программа на вашем компьютере (например, задание cron), которая удаляет файлы из /tmp?
Используете ли вы последнюю версию бутылки? (По номеру строки в вашей трассировке стека это выглядит так, как будто вас нет.)
Если ничего не работает, попробуйте запустить без
reloader=True
(или использоватьreloader=False
). Я посмотрел на код бутылки, и это изменение должно, по крайней мере, обойти проблему, даже если мы не знаем причину (пока).
Надеюсь, это поможет.