sábado, 2 de enero de 2016

Parada de Weewx por base de datos ocupada

2016-1-2.
Trasteando con la base datos he provocado que el programa se parara debido a que al intentar acceder a la base de datos, esta se encontraba bloqueada por el programa SqliteBrowser que era con el que estaba visualizando los registros.
Por tanto cada vez que se abra la base de datos hay que parar el programa.
Este es el error que ha dado en el archivo weewx.log:
Jan  2 10:55:37 raspberrypi weewx[22893]: engine: Shutting down StdReport thread
Jan  2 10:55:37 raspberrypi weewx[22893]: engine: Caught database OperationalError: database is locked
Jan  2 10:55:37 raspberrypi weewx[22893]:     ****  Waiting 2 minutes then retrying...
Jan  2 10:57:38 raspberrypi weewx[22893]: engine: retrying...
Jan  2 10:57:38 raspberrypi weewx[22893]: engine: Using configuration file /etc/weewx/weewx.conf
Jan  2 10:57:38 raspberrypi weewx[22893]: engine: Loading station type FineOffsetUSB (weewx.drivers.fousb)
Jan  2 10:57:38 raspberrypi weewx[22893]: fousb: driver version is 1.8
Jan  2 10:57:38 raspberrypi weewx[22893]: fousb: polling mode is ADAPTIVE
Jan  2 10:57:38 raspberrypi weewx[22893]: fousb: found station on USB bus=001 device=005
Jan  2 10:57:38 raspberrypi weewx[22893]: engine: StdConvert target unit is 0x1
Jan  2 10:57:38 raspberrypi weewx[22893]: engine: Archive will use data binding wx_binding
Jan  2 10:57:38 raspberrypi weewx[22893]: engine: Record generation will be attempted in 'hardware'
Jan  2 10:57:39 raspberrypi weewx[22893]: engine: Using archive interval of 300 seconds
Jan  2 10:57:44 raspberrypi weewx[22893]: engine: Caught unrecoverable exception in engine:
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****  database is locked
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****  Traceback (most recent call last):
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/engine.py", line 842, in main
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      engine = EngineClass(config_dict)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/engine.py", line 75, in __init__
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      self.loadServices(config_dict)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/engine.py", line 136, in loadServices
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict))
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/engine.py", line 504, in __init__
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      self.setup_database(config_dict)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/engine.py", line 602, in setup_database
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      dbmanager = self.engine.db_binder.get_manager(self.data_binding, initialize=True)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/manager.py", line 824, in get_manager
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      self.manager_cache[data_binding] = open_manager(manager_dict, initialize)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/manager.py", line 973, in open_manager
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      manager_dict['schema'])
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/manager.py", line 137, in open_with_create
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      dbmanager = cls(connection, table_name=table_name, schema=schema)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/manager.py", line 1108, in __init__
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      super(DaySummaryManager, self).__init__(connection, table_name, schema)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weewx/manager.py", line 69, in __init__
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      self.sqlkeys = self.connection.columnsOf(self.table_name)
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weedb/sqlite.py", line 154, in columnsOf
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      column_list = [row[1] for row in self.genSchemaOf(table)]
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****    File "/usr/share/weewx/weedb/sqlite.py", line 143, in genSchemaOf
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****      for row in self.connection.execute("""PRAGMA table_info(%s);""" % table):
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****  OperationalError: database is locked
Jan  2 10:57:44 raspberrypi weewx[22893]:     ****  Exiting.

Quedó resuelto con un arranque del programa Weewx de nuevo.
sudo /etc/init.d/weewx start

Tal como arrancó el programa actualizó la base de datos con todos los registros pendientes desde que se paró el programa.


No hay comentarios:

Publicar un comentario