Upgraded to 4.10 to 5.0.2, thanks to help here. But now my Belchertown is dying and restarting the whole shebang with a "database is locked" error.
Ideas? Jun 01 17:45:41 pi4 weewxd[3438608]: INFO __main__: retrying... Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage) Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: StdConvert target unit is 0x1 Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Archive will use data binding wx_binding Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Record generation will be attempted in 'hardware' Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: The archive interval in the configuration file (300) does not match the station hardware interval (60). Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Using archive interval of 60 seconds (specified by hardware) Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: StationRegistry: Station will be registered. Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: Wunderground-PWS: Data for station KWASEATT418 will be posted Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: PWSWeather: Data for station SEAWALL01 will be posted Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: CWOP: Posting not enabled. Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: WOW: Posting not enabled. Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: AWEKAS: Posting not enabled. Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: 'pyephem' detected, extended almanac data is available Jun 01 17:45:41 pi4 weewxd[3438608]: INFO __main__: Starting up weewx version 5.0.2 Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.engine: Clock error is -0.23 seconds (positive is fast) Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb' Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.manager: Starting backfill of daily summaries Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.manager: Daily summaries up to date Jun 01 17:45:43 pi4 weewxd[3438608]: INFO weewx.engine: Starting main packet loop. Jun 01 17:45:46 pi4 weewxd[3438608]: ERROR weewx.restx: StationRegistry: Failed to publish record 2024-06-01 17:43:00 PDT (1717288980): HTTP Error 429: TOO MANY REQUESTS Jun 01 17:47:20 pi4 weewxd[3438608]: INFO weewx.engine: Main loop exiting. Shutting engine down. Jun 01 17:47:20 pi4 weewxd[3438608]: INFO weewx.engine: Shutting down StdReport thread Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/Belchertown/json/weewx_data.json.tmpl failed with exception '<class 'weedb.OperationalError'>' Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/Belchertown/json/weewx_data.json.tmpl Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** Reason: database is locked Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** Traceback (most recent call last): Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** return fn(*args, **kwargs) Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** return sqlite3.Cursor.execute(self, *args, **kwargs) Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** sqlite3.OperationalError: database is locked Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** During handling of the above exception, another exception occurred: Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** Traceback (most recent call last): Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 334, in generate Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** unicode_string = compiled_template.respond() Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "_etc_weewx_skins_Belchertown_json_weewx_data_json_tmpl.py", line 3368, in respond Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 797, in filter Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** filtered = str(val) Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/tags.py", line 486, in __str__ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** vh = self._do_query() Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/tags.py", line 500, in _do_query Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** result = weewx.xtypes.get_aggregate(self.obs_type, self.timespan, Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/xtypes.py", line 136, in get_aggregate Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** return xtype.get_aggregate(obs_type, timespan, aggregate_type, db_manager, Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/xtypes.py", line 599, in get_aggregate Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** row = db_manager.getSql(DailySummaries.agg_sql_dict[aggregate_type] % inter_dict) Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/manager.py", line 579, in getSql Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** _cursor.execute(sql, sqlargs) Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** raise weedb.OperationalError(e) Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** weedb.OperationalError: database is locked Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator' Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** database is locked Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** Traceback (most recent call last): Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** return fn(*args, **kwargs) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** return sqlite3.Cursor.execute(self, *args, **kwargs) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** sqlite3.OperationalError: database is locked Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** During handling of the above exception, another exception occurred: Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** Traceback (most recent call last): Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 220, in run Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** obj.start() Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 409, in start Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** self.run() Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 244, in generate Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** start_ts = default_archive.firstGoodStamp() Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/manager.py", line 330, in firstGoodStamp Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** _row = self.getSql("SELECT MIN(dateTime) FROM %s" % self.table_name) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/manager.py", line 579, in getSql Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** _cursor.execute(sql, sqlargs) Jun 01 17:47:37 pi4 weewxd[3438608]: Traceback (most recent call last): Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn Jun 01 17:47:37 pi4 weewxd[3438608]: return fn(*args, **kwargs) Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Jun 01 17:47:37 pi4 weewxd[3438608]: return sqlite3.Cursor.execute(self, *args, **kwargs) Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: sqlite3.OperationalError: database is locked Jun 01 17:47:37 pi4 weewxd[3438608]: During handling of the above exception, another exception occurred: Jun 01 17:47:37 pi4 weewxd[3438608]: Traceback (most recent call last): Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/reportengine.py", line 220, in run Jun 01 17:47:37 pi4 weewxd[3438608]: obj.start() Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/reportengine.py", line 409, in start Jun 01 17:47:37 pi4 weewxd[3438608]: self.run() Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run Jun 01 17:47:37 pi4 weewxd[3438608]: ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts) Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jun 01 17:47:37 pi4 weewxd[3438608]: ngen += self.generate(section[subsection], subsection, gen_ts) Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jun 01 17:47:37 pi4 weewxd[3438608]: ngen += self.generate(section[subsection], subsection, gen_ts) Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 244, in generate Jun 01 17:47:37 pi4 weewxd[3438608]: start_ts = default_archive.firstGoodStamp() Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/manager.py", line 330, in firstGoodStamp Jun 01 17:47:37 pi4 weewxd[3438608]: _row = self.getSql("SELECT MIN(dateTime) FROM %s" % self.table_name) Jun 01 17:47:37 pi4 weewxd[3438608]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weewx/manager.py", line 579, in getSql Jun 01 17:47:37 pi4 weewxd[3438608]: _cursor.execute(sql, sqlargs) Jun 01 17:47:37 pi4 weewxd[3438608]: File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn Jun 01 17:47:37 pi4 weewxd[3438608]: raise weedb.OperationalError(e) Jun 01 17:47:37 pi4 weewxd[3438608]: weedb.OperationalError: database is locked Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** raise weedb.OperationalError(e) Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** weedb.OperationalError: database is locked Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: **** Generator terminated Jun 01 17:47:40 pi4 weewxd[3438608]: ERROR weewx.engine: Unable to shut down StdReport thread Jun 01 17:47:41 pi4 weewxd[3438608]: CRITICAL __main__: Database OperationalError exception: database is locked Jun 01 17:47:41 pi4 weewxd[3438608]: CRITICAL __main__: **** Waiting 2 minutes then retrying... Jun 01 17:49:41 pi4 weewxd[3438608]: INFO __main__: retrying... Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage) Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: StdConvert target unit is 0x1 Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Archive will use data binding wx_binding Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Record generation will be attempted in 'hardware' Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: The archive interval in the configuration file (300) does not match the station hardware interval (60). Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Using archive interval of 60 seconds (specified by hardware) Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: StationRegistry: Station will be registered. Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: Wunderground-PWS: Data for station KWASEATT418 will be posted Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: PWSWeather: Data for station SEAWALL01 will be posted Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: CWOP: Posting not enabled. Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: WOW: Posting not enabled. Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: AWEKAS: Posting not enabled. Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: 'pyephem' detected, extended almanac data is available Jun 01 17:49:41 pi4 weewxd[3438608]: INFO __main__: Starting up weewx version 5.0.2 Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.engine: Clock error is -1.13 seconds (positive is fast) Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb' Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.manager: Starting backfill of daily summaries Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.manager: Daily summaries up to date Jun 01 17:49:43 pi4 weewxd[3438608]: INFO weewx.engine: Starting main packet loop. Jun 01 17:50:21 pi4 weewxd[3438608]: ERROR weewx.restx: StationRegistry: Failed to publish record 2024-06-01 17:47:00 PDT (1717289220): HTTP Error 429: TOO MANY REQUESTS ... -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/72537de2-2316-4ac3-a5f1-160184fe85cen%40googlegroups.com.