Your log indicates that the database is becoming locked, causing weewx to 
terminate the Generator. 

What are you running weewx on? 
Is it a Raspberry Pi? 
If so, what model?

I had similar problems when I was running weewx with the Belchertown skin 
on a Raspberry Pi Zero W. The Pi Zero W took over 240 seconds to render the 
graphs. My archive period is 5 minutes (300 seconds). When I added another 
task to the Pi, it slowed down enough that weewx hung because the 
Belchertown skin was trying to read the database at the same time that 
weewx was trying to write archive data to the database.

I moved my weewx implementation to a Raspberry Pi 3B+ and the Belchertown 
graph rendering dropped to about 45 seconds and my problems went away.

I suspect that's what's happening. to you.

phil

On Thursday, December 13, 2018 at 2:50:16 PM UTC-5, Hector Valenzuela wrote:
>
> Hi Pat this is my problem. Most of the time weewx works well but there is 
> a moment when the following error occurs, the page loses all graphics and 3 
> minutes later it works normally again.
>
> Dec 13 12:38:21 san_martin weewx[25357]: engine: Shutting down StdReport 
> thread
> Dec 13 12:38:21 san_martin weewx[25357]: reportengine: Caught 
> unrecoverable exception in generator weewx.cheetahgenerator.CheetahGenerator
> Dec 13 12:38:21 san_martin weewx[25357]:         ****  database is locked
> Dec 13 12:38:21 san_martin weewx[25357]:         ****  Traceback (most 
> recent call last):
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 140, in run
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      obj.start()
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 170, in start
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      self.run()
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 143, in run
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      ngen = 
> self.generate(gen_dict[option_section_name], self.gen_ts)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 206, in generate
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      ngen += 
> self.generate(section[subsection], gen_ts)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 206, in generate
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      ngen += 
> self.generate(section[subsection], gen_ts)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 290, in generate
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      default_binding)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 332, in _getSearchList
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      searchList += 
> obj.get_extension_list(timespan, db_lookup)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/user/belchertown_highchartsSearchX.py", line 1084, in 
> get_extension_list
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      (time_start_vt, 
> time_stop_vt, radiation_vt) = db_lookup().getSqlVectors(TimeSpan(_start_ts, 
> _end_ts), 'radiation', 'max', 86400)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 496, in getSqlVectors
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      aggregate_type, 
> aggregate_interval)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 723, in _getSqlVectors
> Dec 13 12:38:21 san_martin weewx[25357]:         ****     
>  _cursor.execute(sql_str, stamp)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 37, in guarded_fn
> Dec 13 12:38:21 san_martin weewx[25357]:         ****      raise 
> weedb.OperationalError(e)
> Dec 13 12:38:21 san_martin weewx[25357]:         ****  OperationalError: 
> database is locked
> Dec 13 12:38:21 san_martin weewx[25357]:         ****  Generator 
> terminated...
> Dec 13 12:38:23 san_martin weewx[25357]: reportengine: copied 0 files to 
> /home/weewx/public_html/belchertown/images
> Dec 13 12:38:29 san_martin weewx[25357]: reportengine: Caught 
> unrecoverable exception in generator weewx.cheetahgenerator.CheetahGenerator
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  database is locked
> Dec 13 12:38:29 san_martin weewx[25357]: reportengine: Caught 
> unrecoverable exception in generator weewx.cheetahgenerator.CheetahGenerator
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  database is locked
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  Traceback (most 
> recent call last):
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 140, in run
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      obj.start()
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  Traceback (most 
> recent call last):
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 170, in start
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      self.run()
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 140, in run
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 143, in run
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      obj.start()
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      ngen = 
> self.generate(gen_dict[option_section_name], self.gen_ts)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 170, in start
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 206, in generate
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      ngen += 
> self.generate(section[subsection], gen_ts)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      self.run()
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 206, in generate
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 140, in run
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      ngen += 
> self.generate(section[subsection], gen_ts)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****     
>  self.initExtensions(gen_dict[option_section_name])
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 290, in generate
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 177, in initExtensions
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      default_binding)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****     
>  self.search_list_objs.append(class_(self))
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 332, in _getSearchList
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 433, in __init__
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      searchList += 
> obj.get_extension_list(timespan, db_lookup)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      archive = 
> self.generator.db_binder.get_manager()
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/user/belchertown_highchartsSearchX.py", line 1084, in 
> get_extension_list
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 824, in get_manager
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      (time_start_vt, 
> time_stop_vt, radiation_vt) = db_lookup().getSqlVectors(TimeSpan(_start_ts, 
> _end_ts), 'radiation', 'max', 86400)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****     
>  self.manager_cache[data_binding] = open_manager(manager_dict, initialize)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 496, in getSqlVectors
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 976, in open_manager
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      aggregate_type, 
> aggregate_interval)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****     
>  manager_dict['table_name'])
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 723, in _getSqlVectors
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 102, in open
> Dec 13 12:38:29 san_martin weewx[25357]:         ****     
>  _cursor.execute(sql_str, stamp)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      dbmanager = 
> cls(connection, table_name)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 37, in guarded_fn
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 1109, in __init__
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      raise 
> weedb.OperationalError(e)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****     
>  super(DaySummaryManager, self).__init__(connection, table_name, schema)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  OperationalError: 
> database is locked
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 70, in __init__
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  Generator 
> terminated...
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      self.sqlkeys = 
> self.connection.columnsOf(self.table_name)
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 155, in columnsOf
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      column_list = 
> [row[1] for row in self.genSchemaOf(table)]
> Dec 13 12:38:29 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 144, in genSchemaOf
> Dec 13 12:38:29 san_martin weewx[25357]:         ****      for row in 
> self.connection.execute("""PRAGMA table_info(%s);""" % table):
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  OperationalError: 
> database is locked
> Dec 13 12:38:29 san_martin weewx[25357]:         ****  Generator 
> terminated...
> Dec 13 12:38:29 san_martin weewx[25357]: reportengine: copied 1 files to 
> /home/weewx/public_html/belchertown/images
> Dec 13 12:38:29 san_martin weewx[25357]: reportengine: copied 0 files to 
> /home/weewx/public_html/belchertown/images
> Dec 13 12:38:32 san_martin weewx[25357]: rsyncupload: rsync'd 17 files 
> (1,964,298 bytes) in 3.29 seconds
> Dec 13 12:38:34 san_martin weewx[25357]: reportengine: Caught 
> unrecoverable exception in generator weewx.cheetahgenerator.CheetahGenerator
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  database is locked
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  Traceback (most 
> recent call last):
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 140, in run
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      obj.start()
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 170, in start
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      self.run()
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 143, in run
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      ngen = 
> self.generate(gen_dict[option_section_name], self.gen_ts)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 206, in generate
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      ngen += 
> self.generate(section[subsection], gen_ts)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 206, in generate
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      ngen += 
> self.generate(section[subsection], gen_ts)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 290, in generate
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      default_binding)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 332, in _getSearchList
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      searchList += 
> obj.get_extension_list(timespan, db_lookup)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/user/belchertown_highchartsSearchX.py", line 1039, in 
> get_extension_list
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      (time_start_vt, 
> time_stop_vt, rainRate_vt) = db_lookup().getSqlVectors(TimeSpan(_start_ts, 
> _end_ts), 'rain', '', 86400)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 496, in getSqlVectors
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      aggregate_type, 
> aggregate_interval)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 742, in _getSqlVectors
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      for _rec in 
> _cursor.execute(sql_str, (startstamp, stopstamp)):
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 37, in guarded_fn
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      raise 
> weedb.OperationalError(e)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  OperationalError: 
> database is locked
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  Generator 
> terminated...
> Dec 13 12:38:34 san_martin weewx[25357]: reportengine: copied 0 files to 
> /home/weewx/public_html/belchertown/images
> Dec 13 12:38:34 san_martin weewx[25357]: reportengine: Caught 
> unrecoverable exception in generator weewx.cheetahgenerator.CheetahGenerator
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  database is locked
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  Traceback (most 
> recent call last):
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 140, in run
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      obj.start()
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/reportengine.py", line 170, in start
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      self.run()
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 140, in run
> Dec 13 12:38:34 san_martin weewx[25357]:         ****     
>  self.initExtensions(gen_dict[option_section_name])
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 177, in initExtensions
> Dec 13 12:38:34 san_martin weewx[25357]:         ****     
>  self.search_list_objs.append(class_(self))
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/cheetahgenerator.py", line 433, in __init__
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      archive = 
> self.generator.db_binder.get_manager()
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 824, in get_manager
> Dec 13 12:38:34 san_martin weewx[25357]:         ****     
>  self.manager_cache[data_binding] = open_manager(manager_dict, initialize)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 976, in open_manager
> Dec 13 12:38:34 san_martin weewx[25357]:         ****     
>  manager_dict['table_name'])
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 102, in open
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      dbmanager = 
> cls(connection, table_name)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 1109, in __init__
> Dec 13 12:38:34 san_martin weewx[25357]:         ****     
>  super(DaySummaryManager, self).__init__(connection, table_name, schema)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weewx/manager.py", line 70, in __init__
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      self.sqlkeys = 
> self.connection.columnsOf(self.table_name)
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 155, in columnsOf
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      column_list = 
> [row[1] for row in self.genSchemaOf(table)]
> Dec 13 12:38:34 san_martin weewx[25357]:         ****    File 
> "/home/weewx/bin/weedb/sqlite.py", line 144, in genSchemaOf
> Dec 13 12:38:34 san_martin weewx[25357]:         ****      for row in 
> self.connection.execute("""PRAGMA table_info(%s);""" % table):
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  OperationalError: 
> database is locked
> Dec 13 12:38:34 san_martin weewx[25357]:         ****  Generator 
> terminated...
> Dec 13 12:38:34 san_martin weewx[25357]: reportengine: copied 1 files to 
> /home/weewx/public_html/belchertown/images
> Dec 13 12:38:35 san_martin weewx[25357]: rsyncupload: rsync'd 1 files 
> (40,464 bytes) in 1.33 seconds
> Dec 13 12:38:35 san_martin weewx[25357]: engine: Caught database 
> OperationalError: database is locked
> Dec 13 12:38:35 san_martin weewx[25357]:     ****  Waiting 2 minutes then 
> retrying...
> Dec 13 12:38:39 san_martin weewx[25357]: cheetahgenerator: Generated 13 
> files for report Belchertown in 5.24 seconds
> Dec 13 12:38:39 san_martin weewx[25357]: reportengine: copied 1 files to 
> /home/weewx/public_html/belchertown/images
> Dec 13 12:38:40 san_martin weewx[25357]: rsyncupload: rsync'd 14 files 
> (259,266 bytes) in 1.50 seconds
>
>
> El viernes, 7 de diciembre de 2018, 15:13:16 (UTC-7), Pat escribió:
>>
>> Done and done 
>> <https://groups.google.com/forum/#!topic/weewx-user/ARBHWDXiDpQ>! To 
>> all, let's pick up the conversation there since this thread is a bit too 
>> long now. 
>>
>>
>> On Friday, December 7, 2018 at 4:25:46 PM UTC-5, gjr80 wrote:
>>>
>>> Pat,
>>>
>>> How about a new thread for the release of 0.8.1, I was given a ticket 
>>> for loitering yesterday waiting for this thread to load :)
>>>
>>> Gary
>>>
>>>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to