I have the following problem. Today, at around 1:30 p.m. local time, Weewx 
stopped working - the data sent by rsync to the website are not refreshing. 
After restarting Weewx, I see:

pi@pihole-dom:~ $ sudo systemctl status weewx.service 
× weewx.service - WeeWX
     Loaded: loaded (/lib/systemd/system/weewx.service; enabled; preset: 
enabled)
     Active: failed (Result: signal) since Thu 2026-01-01 16:14:29 CET; 
32min ago
   Duration: 7min 15.568s
       Docs: https://weewx.com/docs
    Process: 6937 ExecStart=weewxd /etc/weewx/weewx.conf (code=killed, 
signal=KILL)
   Main PID: 6937 (code=killed, signal=KILL)
        CPU: 2min 29.856s
        
I checked the log, where I only save messages from the ERROR level. The log 
is about 150 MB in size, which in itself is not normal. Inside, there are 
lots of messages:

gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: 
Evaluation of template /etc/weewx/skins/neowx-material/year.html.tmpl 
failed with exception '<class>
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
Ignoring template /etc/weewx/skins/neowx-material/year.html.tmpl
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
Reason: database disk image is malformed
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
 Traceback (most recent call last):
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weewx/cheetahgenerator.py", line 334, in generate
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     unicode_string = compiled_template.respond()
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "_etc_weewx_skins_neowx_material_year_html_tmpl.py", line 1130, in 
respond
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weewx/tags.py", line 508, in __getattr__
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     vh = self._do_query()
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
          ^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weewx/tags.py", line 494, in _do_query
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     result = weewx.xtypes.get_aggregate(self.obs_type, self.timespan,
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weewx/xtypes.py", line 136, in get_aggregate
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     return xtype.get_aggregate(obs_type, timespan, aggregate_type, 
db_manager,
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
            
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weewx/xtypes.py", line 372, in get_aggregate
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     row = db_manager.getSql(select_stmt)
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weewx/manager.py", line 597, in getSql
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     _cursor.execute(sql, sqlargs)
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     return fn(*args, **kwargs)
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
            ^^^^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
   File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
     return sqlite3.Cursor.execute(self, *args, **kwargs)
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gru 31 14:50:59 pihole-dom weewxd[968]: ERROR weewx.cheetahgenerator: **** 
 sqlite3.DatabaseError: database disk image is malformed

This one worried me: 

sqlite3.DatabaseError: database disk image is malformed

I looked at the summary for the year and saw a single, very high peak on 
the pressure graph with an absurd value of approx. 2e+184 for August 15. 
All other parameters (temperature, etc.) look normal. The summary for the 
month also looks normal. I looked at the database, but neither on that day 
nor on any other day did the pressure values exceed the norm. So I decided 
to rebuild the summaries. Since Weewx and the database are on Raspberry Pi, 
I moved the weewx.sdb file to my laptop and, using the instructions from 
https://www.weewx.com/docs/5.1/utilities/weectl-database/, I first did the 
following:

stalker@e6540:~$ weectl database drop-daily
Using configuration file /etc/weewx/weewx.conf
Proceeding will delete all your daily summaries from database 'weewx.sdb'
Are you sure you want to proceed (y/n)? y
Daily summary tables dropped from database 'weewx.sdb' in 0.06 seconds

And then:

stalker@e6540:~$ 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' ...
Traceback (most recent call last):025-08-03 22:30:00 CEST (1754253000)
  File "/usr/share/weewx/weectl.py", line 75, in <module>
    main()
    ~~~~^^
  File "/usr/share/weewx/weectl.py", line 67, in main
    namespace.func(namespace)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/usr/share/weewx/weectllib/__init__.py", line 90, in dispatch
    namespace.action_func(config_dict, namespace)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/weewx/weectllib/database_cmd.py", line 328, in 
rebuild_daily
    weectllib.database_actions.rebuild_daily(config_dict,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
                                             date=namespace.date,
                                             ^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
                                             dry_run=namespace.dry_run,
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
                                             no_confirm=namespace.yes)
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/weewx/weectllib/database_actions.py", line 139, in 
rebuild_daily
    nrecs, ndays = dbm.backfill_day_summary(start_d=from_d,
                   ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
                                            stop_d=to_d,
                                            ^^^^^^^^^^^^
                                            trans_days=20)
                                            ^^^^^^^^^^^^^^
  File "/usr/share/weewx/weewx/manager.py", line 1331, in 
backfill_day_summary
    for rec in self.genBatchRecords(start_batch_ts, stop_batch_ts):
               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/weewx/weewx/manager.py", line 536, in genBatchRecords
    for row in self.genBatchRows(startstamp, stopstamp):
               ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/weewx/weewx/manager.py", line 518, in genBatchRows
    for row in gen:
               ^^^
sqlite3.DatabaseError: database disk image is malformed

Note that in the Traceback message (most recent call last):025-08-03 
22:30:00 CEST (1754253000), the year is written as 025 instead of 2025, but 
the Julian date converts correctly to 2025-08-03 20:30:00 UT. However, 
moving along the graph in the year summary, August 3 looks normal, and the 
peak is August 15.

The question is simple: how to fix the database?

-- 
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 visit 
https://groups.google.com/d/msgid/weewx-user/a0992ed2-2e09-4d12-9bba-f834351faf4en%40googlegroups.com.

Reply via email to