We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Describe the bug A clear and concise description of what the bug is. Which version of the skin are you using?
To Reproduce Steps to reproduce the behavior:
Expected behavior Cheetahgenerator should cleanly produce the statistics page without crashing the reportengine.
Additional context Output:
Jul 10 04:30:16 cyclone weewxd[1066]: INFO weewx.manager: Added record 2024-07-10 04:30:00 CDT (1720603800) to daily summary in 'weewx.sdb' Jul 10 04:30:21 cyclone weewxd[1066]: INFO weewx.engine: Main loop exiting. Shutting engine down. Jul 10 04:30:21 cyclone weewxd[1066]: INFO weewx.engine: Shutting down StdReport thread Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/weewx-wdc/statistics.html.tmpl failed with exception '<class 'weedb.OperationalError'>' Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/weewx-wdc/statistics.html.tmpl Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** Reason: database is locked Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** Traceback (most recent call last): Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** return fn(*args, **kwargs) Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** return sqlite3.Cursor.execute(self, *args, **kwargs) Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** sqlite3.OperationalError: database is locked Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** During handling of the above exception, another exception occurred: Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** Traceback (most recent call last): Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 334, in generate Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** unicode_string = compiled_template.respond() Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "_etc_weewx_skins_weewx_wdc_statistics_html_tmpl.py", line 258, in respond Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 1708, in _handleCheetahInclude Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** self._CHEETAH__cheetahIncludes[_includeID].respond(trans) Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "_etc_weewx_skins_weewx_wdc_includes_body_alternative_inc.py", line 234, in respond Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 1708, in _handleCheetahInclude Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** self._CHEETAH__cheetahIncludes[_includeID].respond(trans) Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "_etc_weewx_skins_weewx_wdc_includes_stat_tile_inc.py", line 912, in respond Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "_etc_weewx_skins_weewx_wdc_includes_stat_tile_inc.py", line 344, in __errorCatcher40 Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "<string>", line 1, in <module> Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/tags.py", line 508, in __getattr__ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** vh = self._do_query() Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/tags.py", line 494, in _do_query Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** result = weewx.xtypes.get_aggregate(self.obs_type, self.timespan, Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/xtypes.py", line 136, in get_aggregate Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** return xtype.get_aggregate(obs_type, timespan, aggregate_type, db_manager, Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/xtypes.py", line 930, in get_aggregate Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** for record in db_manager.genBatchRecords(*timespan): Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/manager.py", line 538, in genBatchRecords Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** for row in self.genBatchRows(startstamp, stopstamp): Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weewx/manager.py", line 515, in genBatchRows Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** gen = cursor.execute("SELECT * FROM %s " Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** raise weedb.OperationalError(e) Jul 10 04:30:34 cyclone weewxd[1066]: ERROR weewx.cheetahgenerator: **** weedb.OperationalError: database is locked Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator' Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** database is locked Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** Traceback (most recent call last): Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** return fn(*args, **kwargs) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** return sqlite3.Cursor.execute(self, *args, **kwargs) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** sqlite3.OperationalError: database is locked Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** During handling of the above exception, another exception occurred: Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** Traceback (most recent call last): Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 248, in run Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** obj.start() Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 465, in start Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** self.run() Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts) Jul 10 04:30:39 cyclone weewxd[1066]: Traceback (most recent call last): Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn Jul 10 04:30:39 cyclone weewxd[1066]: return fn(*args, **kwargs) Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Jul 10 04:30:39 cyclone weewxd[1066]: return sqlite3.Cursor.execute(self, *args, **kwargs) Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: sqlite3.OperationalError: database is locked Jul 10 04:30:39 cyclone weewxd[1066]: During handling of the above exception, another exception occurred: Jul 10 04:30:39 cyclone weewxd[1066]: Traceback (most recent call last): Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 244, in generate Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/reportengine.py", line 248, in run Jul 10 04:30:39 cyclone weewxd[1066]: obj.start() Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/reportengine.py", line 465, in start Jul 10 04:30:39 cyclone weewxd[1066]: self.run() Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run Jul 10 04:30:39 cyclone weewxd[1066]: ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts) Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jul 10 04:30:39 cyclone weewxd[1066]: ngen += self.generate(section[subsection], subsection, gen_ts) Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Jul 10 04:30:39 cyclone weewxd[1066]: ngen += self.generate(section[subsection], subsection, gen_ts) Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 244, in generate Jul 10 04:30:39 cyclone weewxd[1066]: start_ts = default_archive.firstGoodStamp() Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/manager.py", line 330, in firstGoodStamp Jul 10 04:30:39 cyclone weewxd[1066]: _row = self.getSql("SELECT MIN(dateTime) FROM %s" % self.table_name) Jul 10 04:30:39 cyclone weewxd[1066]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weewx/manager.py", line 599, in getSql Jul 10 04:30:39 cyclone weewxd[1066]: _cursor.execute(sql, sqlargs) Jul 10 04:30:39 cyclone weewxd[1066]: File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn Jul 10 04:30:39 cyclone weewxd[1066]: raise weedb.OperationalError(e) Jul 10 04:30:39 cyclone weewxd[1066]: weedb.OperationalError: database is locked Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** start_ts = default_archive.firstGoodStamp() Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/manager.py", line 330, in firstGoodStamp Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** _row = self.getSql("SELECT MIN(dateTime) FROM %s" % self.table_name) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/manager.py", line 599, in getSql Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** _cursor.execute(sql, sqlargs) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** raise weedb.OperationalError(e) Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** weedb.OperationalError: database is locked Jul 10 04:30:39 cyclone weewxd[1066]: ERROR weewx.reportengine: **** Generator terminated Jul 10 04:30:39 cyclone weewxd[1066]: INFO weewx.reportengine: Copied 19 files to /var/www/html/weewx Jul 10 04:30:39 cyclone weewxd[1066]: CRITICAL __main__: Database OperationalError exception: database is locked Jul 10 04:30:39 cyclone weewxd[1066]: CRITICAL __main__: **** Waiting 2 minutes then retrying... Jul 10 04:32:39 cyclone weewxd[1066]: INFO __main__: retrying... Jul 10 04:32:39 cyclone weewxd[1066]: INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage) Jul 10 04:32:39 cyclone weewxd[1066]: INFO weewx.engine: StdConvert target unit is 0x1
The text was updated successfully, but these errors were encountered:
Hello there and thank you for reaching out and posting relevant log data!
I will close this issue in favour of #267 - let's continue the discussion there, thank you.
Sorry, something went wrong.
No branches or pull requests
Describe the bug
A clear and concise description of what the bug is. Which version of the skin are you using?
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Cheetahgenerator should cleanly produce the statistics page without crashing the reportengine.
Additional context
Output:
The text was updated successfully, but these errors were encountered: