Sadly those mysterious rows only appear AFTER .recover,  they appear within 
weewx.sql.
The failing command is

SELECT count(*)
FROM archive
WHERE
  date(datetime, 'unixepoch', 'localtime')
  between '2024-03-15' and '2024-03-15';

But that command works fine AFTER .recover.

The error message from weewxd clearly indicates wrong datetime:

Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****     
 last_d = datetime.date.fromtimestamp(weeutil.weeutil.startOfArchiveDay(
Mär 20 11:34:37 imurr9 weewxd[15172]:     time_dt = 
datetime.datetime.fromtimestamp(time_ts)
Mär 20 11:34:37 imurr9 weewxd[15172]: OverflowError: timestamp out of range 
for platform time_t
Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****    File 
"/usr/share/weewx/weeutil/weeutil.py", line 1196, in startOfArchiveDay
Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****     
 time_dt = datetime.datetime.fromtimestamp(time_ts)
Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     **** 
 OverflowError: timestamp out of range for platform time_t
Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****  Exiting
Michael Waldor schrieb am Mittwoch, 20. März 2024 um 10:43:13 UTC+1:

> I do have a first idea: There are entries within weewx.sdb where datetime 
> is 0 or 7. Those values clearly are no valid timestamps.
> I'll proceed in that direction ...
>
> Michael Waldor schrieb am Mittwoch, 20. März 2024 um 10:04:57 UTC+1:
>
>> Some days ago I've stopped weewx for roughly one day (I did change the 
>> GPIO connections of my raspberry pi4). Now I wanted to insert some data 
>> into my weewx.sdb from that timespan.
>>
>> When trying some sqlite3 commands (on a local copy of weewx.sdb - as an 
>> exercise a simple count) sqlite3 failed with corrupt database. OK, can 
>> imagine that that might have happened sometimes during the last 5 years. 
>> Thus I tried to rebuild my database by
>>
>> mv weewx.sdb weewx_corrupt.sdb
>> sqlite3 weewx_corrupt.sdb .recover > weewx.sql
>> sqlite3 weewx.sdb < weewx.sql
>>
>> Now my sqlite3 commands worked as expected, i.e. the newly created 
>> weewx.sdb seemed to be fixed. Keep in mind that I did not modify weewx.sql. 
>> Thus a potential error might still have "survived" within the newly created 
>> weewx.sdb.
>>
>> I then checked the modified weewx.sdb copied into /var/lib/weewx (weewx 
>> itself was NOT running) with
>>
>> weectl database check
>>
>> and got no error messages. But weewxd did not like that modified 
>> weewx.sdb. It reports "OverflowError: timestamp out of range for ..." when 
>> starting weewx.
>>
>> To me it's difficult to tell
>> 1. whether my original weewx.sdb is corrupt at all (weewxd works fine)
>> 2. if it's corrupt howto fix it.
>>
>> Hope somebody might have a suggestion, Michael
>>
>>

-- 
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/b00628cf-ebf4-4fc2-a8bb-a193447e9476n%40googlegroups.com.

Reply via email to