will-hart / blitz

An open source data acquisition system in Python
http://will-hart.github.io/blitz/
GNU Affero General Public License v3.0
0 stars 1 forks source link

More intelligent error handling if unable to find redis DB #18

Open will-hart opened 10 years ago

will-hart commented 10 years ago

In serial line 74, Currently just fails to create the DB manager and then just errors every time it tries to do something with the data manager


will-hart commented 10 years ago

Currently logs critical errors but doesn't then do anything about it. The client then continues as normal but doesn't receive intelligent responses from the server.

will-hart commented 10 years ago

Related stack trace on the server:

Traceback (most recent call last):
  File "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner
    self.run()
  File "C:\Python27\lib\threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)
  File "C:\Users\mecharius\Dropbox\blitz\blitz\communications\tcp.py", line 248, in run
    self.__current_state = self.__current_state.receive_message(self.__tcp, request.command)
  File "C:\Users\mecharius\Dropbox\blitz\blitz\communications\server_states.py", line 107, in receive_message
    sigs.server_status_request.send(tcp)
  File "C:\Python27\lib\site-packages\blinker\base.py", line 267, in send
    for receiver in self.receivers_for(sender)]
  File "C:\Users\mecharius\Dropbox\blitz\blitz\server.py", line 186, in serve_client_status
    message = self.serial_server.database.get_latest_from_session(self.serial_server.database.session_id)
AttributeError: 'NoneType' object has no attribute 'get_latest_from_session'
will-hart commented 10 years ago

This will rely on the server plugin refactoring (#51) which will bring the database class out into the server proper. Suggested implementation is to create a ServerErrorState TCP state which returns an error code in response to all transmissions.

For a database error no data acquisition is possible so we don't the client to do anything until this is fixed.