if enough RAM on RPi, do it on ram disk (temporary mounts) rather than ssd - that got me around some strange (but massive) i/o latencies when migrating v3→v4 and converted hours database task to minutes ⊣GE⊢
> On 3 Jun 2024, at 10:02 AM, Tom Keffer <[email protected]> wrote: > > According to sqlite, all of their databases are cross-platform > <https://www.sqlite.org/onefile.html> between big- and little-endian and > between 32- and 64-bit hardware. So, if you have access to a faster machine, > you can do the rebuild there, then copy the results over. > > On Sun, Jun 2, 2024 at 4:56 PM Rob Cranfill <[email protected] > <mailto:[email protected]>> wrote: >> Updated the DB. All looks good now, I think. >> >> Just FYI, on my Pi4 with an SSD and a few years of records, the rebuild took >> this long: >> >> rob@pi4:/var/lib/weewx $ weectl database rebuild-daily >> Using configuration file /etc/weewx/weewx.conf >> All daily summaries will be rebuilt. >> Rebuild the daily summaries in the database 'weewx.sdb' (y/n)? y >> Rebuilding daily summaries in database 'weewx.sdb' ... >> Records processed: 2208000; time: 2024-06-02 04:55:00 PDT (1717329300) >> Processed 2208530 records to rebuild 1538 daily summaries in 1784.55 seconds. >> Rebuild of daily summaries in database 'weewx.sdb' complete. >> >> :-) >> >> Thanks again! >> >> On Sunday, June 2, 2024 at 8:42:00 AM UTC-7 vince wrote: >>> This is documented (here) >>> <https://github.com/poblabs/weewx-belchertown/issues/924> in the >>> Belchertown issues in Pat's github repo.... >>> >>> On Saturday, June 1, 2024 at 7:50:48 PM UTC-7 Rob Cranfill wrote: >>>> Thanks, Vince. I read those other threads but didn't realize my particular >>>> error was from the same issue. I will look into it; meanwhile I've just >>>> turned Belchertown off. >>>> >>>> On Saturday, June 1, 2024 at 6:06:07 PM UTC-7 vince wrote: >>>>> Your computer is too slow, or your SD card is too slow, or your archive >>>>> period is too frequent (60 secs is very fast), or some combination of the >>>>> above. For Belchertown specifically, many folks have run into issues >>>>> with v5 calculating items referenced in skins that are not elements in >>>>> their db. Check the earlier threads from this week for the handful that >>>>> might be missing in your db. >>>>> >>>>> At a minimum run 'weectl debug' and show us which DB elements are >>>>> defined. That's 114 elements in the default v4 and above schema. If you >>>>> see a number more like 51 or so, you're running the old schema and you'll >>>>> need to add some fields (per the multiple other threads in the last week >>>>> or so) >>>>> >>>>> Archive info >>>>> Database name: vp2.sdb >>>>> Table name: archive >>>>> Version 4.0 >>>>> Unit system: 1 (US) >>>>> First good timestamp: 2006-11-29 19:24:00 PST (1164857040) >>>>> Last good timestamp: 2024-06-01 09:10:00 PDT (1717258200) >>>>> Number of records: 1713267 >>>>> weewx (weewx.conf) is set to use an archive interval of 300 seconds. >>>>> The station hardware was not interrogated to determine the archive >>>>> interval. >>>>> >>>>> Supported SQL keys >>>>> dateTime usUnits interval >>>>> altimeter appTemp appTemp1 >>>>> barometer batteryStatus1 batteryStatus2 >>>>> batteryStatus3 batteryStatus4 batteryStatus5 >>>>> batteryStatus6 batteryStatus7 batteryStatus8 >>>>> cloudbase co co2 >>>>> consBatteryVoltage dewpoint dewpoint1 >>>>> ET extraHumid1 extraHumid2 >>>>> extraHumid3 extraHumid4 extraHumid5 >>>>> extraHumid6 extraHumid7 extraHumid8 >>>>> extraTemp1 extraTemp2 extraTemp3 >>>>> extraTemp4 extraTemp5 extraTemp6 >>>>> extraTemp7 extraTemp8 forecast >>>>> hail hailBatteryStatus hailRate >>>>> heatindex heatindex1 heatingTemp >>>>> heatingVoltage humidex humidex1 >>>>> inDewpoint inHumidity inTemp >>>>> inTempBatteryStatus leafTemp1 leafTemp2 >>>>> leafWet1 leafWet2 lightning_distance >>>>> lightning_disturber_count lightning_energy >>>>> lightning_noise_count >>>>> lightning_strike_count luminosity maxSolarRad >>>>> nh3 no2 noise >>>>> o3 outHumidity outTemp >>>>> outTempBatteryStatus pb pm10_0 >>>>> pm1_0 pm2_5 pressure >>>>> radiation rain rainBatteryStatus >>>>> rainRate referenceVoltage rxCheckPercent >>>>> signal1 signal2 signal3 >>>>> signal4 signal5 signal6 >>>>> signal7 signal8 snow >>>>> snowBatteryStatus snowDepth snowMoisture >>>>> snowRate so2 soilMoist1 >>>>> soilMoist2 soilMoist3 soilMoist4 >>>>> soilTemp1 soilTemp2 soilTemp3 >>>>> soilTemp4 supplyVoltage txBatteryStatus >>>>> UV uvBatteryStatus windBatteryStatus >>>>> windchill windDir windGust >>>>> windGustDir windrun windSpeed >>>>> >>>>> On Saturday, June 1, 2024 at 5:58:01 PM UTC-7 Rob Cranfill wrote: >>>>>> 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 [email protected] >> <mailto:[email protected]>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/645740ae-ff23-46c4-9aac-331073c2ee9dn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/645740ae-ff23-46c4-9aac-331073c2ee9dn%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > -- > 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] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/CAPq0zEBp58qW8w8KvSDumO101u0KumP-QnTMnKOwuZ8n%2BhTvLA%40mail.gmail.com > > <https://groups.google.com/d/msgid/weewx-user/CAPq0zEBp58qW8w8KvSDumO101u0KumP-QnTMnKOwuZ8n%2BhTvLA%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/3D27EC4A-97D0-4502-89C7-431B367BB9BB%40geddy.au.
