There are lots of ways this can happen. Things to try (or, at least, think
about):

1. I would think that an RPi2 would be enough to run WeeWX + Belchertown.
Check by running a tool such as htop or top. How busy is the processor?

Along the same line, what is your archive interval? If it is short (1
minute), and your reports are complex, it is possible you are asking too
much of an RPi2.

2. Database locked errors can be as simple as having an open instance of
sqlite3 or SQLite DB Browser, which are contending for the locks. Running
weewxd and another weewx utility simultaneously can cause this. You can
check to see if more than one process is using the database by using the
"fuser" command:

fuser -v /var/lib/weewx/weewx.sdb

3. Older versions of the underlying "C" library would wait for a full
second if the database was locked. It wouldn't take too many attempts to
exceed the typical 5 second timeout limit. However, I think this has been
fixed in newer versions. Still, it's worth an "apt update", followed by
"apt upgrade" to be sure you're up to date.

4. I am not very familiar with the Belchertown skin, so it's possible that
it's creating this problem internally by holding open two connections
simultaneously, without an intervening commit. Don't know.

5. It's also possible that your SD card is failing, and SQLite is
struggling to finalize the commits, leading to lock contention. The tool
fsck can help to determine the health of your card. Use the utility "top",
and look at the "wa" field (2nd line) while WeeWX is generating reports.





On Mon, Nov 8, 2021 at 5:21 PM Doug Jenkins <d...@dougjenkins.com> wrote:

> Rpi2 with the latest O/S version is probably not enough to run both
> belchertown and weewx together. Especially if you have a lot of archive
> records to generate the NOAA reports on the first go.
>
> The RPI 4 is readily available and will be a good investment for a nominal
> fee. It has at least 2GB (vs 512mb) of RAM and a 4 core processor instead
> of the single core Broadcom chip that came on that pi.
>
> The bus is a lot better for I/O and you will have a lot less of an issue
> with SD card corruption with RPi4 than with RPi2.
>
> Trust me, I started my weewx 3.x site 3 years ago in on a RPi 2 and
> struggled with stability with the pi itself. Now I run on a RPi4 with a
> portable SSD drive to store my data with no issues.
>
> Just my $0.02....
>
>
>
> On Mon, Nov 8, 2021, 8:02 PM vince <vinceska...@gmail.com> wrote:
>
>> I bet if you turn Belchertown off (temporarily) and enable just the
>> Standard or Seasons skin that it'll work just fine.
>>
>> Sometimes you need to throw more compute at the problem.
>>
>> On Monday, November 8, 2021 at 4:40:00 PM UTC-8 bchap...@gmail.com wrote:
>>
>>> Raspberry Pi 2 with raspbian buster
>>>
>>> This runs in a cycle of approximately every 6 minutes.  Nothing else
>>> running on this machine.
>>>
>>> On Monday, November 8, 2021 at 7:35:14 PM UTC-5 tke...@gmail.com wrote:
>>>
>>>> Yes, tell us what computer you are using. Also, the operating system
>>>> and version.
>>>>
>>>> On Mon, Nov 8, 2021 at 4:32 PM vince <vince...@gmail.com> wrote:
>>>>
>>>>> Your database is locked :-)
>>>>>
>>>>> Typically this is when you're trying to do too much too fast on a very
>>>>> slow box like a pi-zero or the like.
>>>>>
>>>>> On Monday, November 8, 2021 at 4:06:48 PM UTC-8 bchap...@gmail.com
>>>>> wrote:
>>>>>
>>>>>> Nov  8 18:53:35 raspberrypi weewx[5618] INFO weewx.engine: Main loop
>>>>>> exiting. Shutting engine down.
>>>>>> Nov  8 18:53:35 raspberrypi weewx[5618] INFO weewx.engine: Shutting
>>>>>> down StdReport thread
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR weewx.reportengine:
>>>>>> Caught unrecoverable exception in generator
>>>>>> 'user.belchertown.HighchartsJsonGenerator'
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  database is locked
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  Traceback (most recent call last):
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 30, in guarded_fn
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      return fn(*args, **kwargs)
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 219, in execute
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      return sqlite3.Cursor.execute(self,
>>>>>> *args, **kwargs)
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  sqlite3.OperationalError: database is
>>>>>> locked
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  During handling of the above exception,
>>>>>> another exception occurred:
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  Traceback (most recent call last):
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 196, in run
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      obj.start()
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 281, in start
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      self.run()
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/user/belchertown.py", line 1550, in run
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      start_ts = archive.firstGoodStamp()
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weewx/manager.py", line 247, in firstGoodStamp
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      _row = self.getSql("SELECT
>>>>>> MIN(dateTime) FROM %s" % self.table_name)
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weewx/manager.py", line 449, in getSql
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      _cursor.execute(sql, sqlargs)
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****    File
>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 44, in guarded_fn
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****      raise weedb.OperationalError(e)
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  weedb.OperationalError: database is 
>>>>>> locked
>>>>>> Nov  8 18:53:44 raspberrypi weewx[5618] ERROR
>>>>>> weewx.reportengine:         ****  Generator terminated
>>>>>> Nov  8 18:53:45 raspberrypi weewx[5618] INFO user.gw1000:
>>>>>> Gw1000Collector thread has been terminated
>>>>>> Nov  8 18:53:45 raspberrypi weewx[5618] CRITICAL __main__: Database
>>>>>> OperationalError exception: database is locked
>>>>>> Nov  8 18:53:45 raspberrypi weewx[5618] CRITICAL __main__:     ****
>>>>>> Waiting 2 minutes then retrying...
>>>>>> Nov  8 18:55:45 raspberrypi weewx[5618] INFO __main__: retrying...
>>>>>>
>>>>>> --
>>>>> 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+...@googlegroups.com.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/weewx-user/005fa296-d595-4f83-9626-1d6f45ccf251n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/weewx-user/005fa296-d595-4f83-9626-1d6f45ccf251n%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 weewx-user+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-user/b3bd61f2-c6a1-4a39-bf90-6e4dabcf2e70n%40googlegroups.com
>> <https://groups.google.com/d/msgid/weewx-user/b3bd61f2-c6a1-4a39-bf90-6e4dabcf2e70n%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 weewx-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/CACC0i0wp62Vji_7dd%3Drbn1UzoczcPUw2z1siMib7psAuhxb9gA%40mail.gmail.com
> <https://groups.google.com/d/msgid/weewx-user/CACC0i0wp62Vji_7dd%3Drbn1UzoczcPUw2z1siMib7psAuhxb9gA%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 weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAPq0zEA%2BK2ukrqvNDwvW%2BEU3ZraumPpiGEHK8%2BbBWcaAg5RKkg%40mail.gmail.com.

Reply via email to