Crash with 4.0.0b6

61 views
Skip to first unread message

Ralph Underwood

unread,
Jan 7, 2020, 11:15:39 PM1/7/20
to weewx-development
My system crashed this afternoon.  This is the log starting with the last successful Ftp.  I had been working on my MQTT sensor code, adding some delay to cut down on the file writes to the SD card. 

My setup is an RPi 4 with an Ultimeter Station and an additional BME280 sensor connected to a Huzzah ESP8266 that publishes an MQTT payload. I have a little Python3 program that subscribes to the MQTT and writes a file for the file pile service. This basic set up has been working for several days, until I restarted the MQTT based sensor, the MQTT messages are being published OK and all looked good. I thought I heard rain and looked to my web site and the time was 15:45 on the site, real time was about 19:00.

So my question is - did I uncover a bug or did I screw something up.  

Jan  7 15:45:26 JV-Wx weewx[24318] INFO weewx.reportengine: ftpgenerator: Ftp'd 24 files in 9.25 seconds
Jan  7 15:45:26 JV-Wx weewx[24318] DEBUG weewx.reportengine: reportengine: Report 'RSYNC' not enabled. Skipping.
Jan  7 15:50:15 JV-Wx weewx[24318] INFO weewx.engine: Main loop exiting. Shutting engine down.
Jan  7 15:50:15 JV-Wx weewx[24318] INFO weewx.engine: Shutting down StdReport thread
Jan  7 15:50:15 JV-Wx weewx[24318] DEBUG weewx.engine: StdReport thread has been terminated
Jan  7 15:50:15 JV-Wx weewx[24318] DEBUG weewx.drivers.ultimeter: Close serial port /dev/ttyUSB0
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine: Caught unrecoverable exception:
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  could not convert string to float: 
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  Traceback (most recent call last):
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 201, in run
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet))
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 230, in dispatchEvent
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      callback(event)
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 582, in check_loop
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      raise BreakLoop
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  weewx.engine.BreakLoop
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  During handling of the above exception, another exception occurred:
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  Traceback (most recent call last):
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 598, in post_loop
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      self._catchup(self.engine.console.genArchiveRecords)
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 639, in _catchup
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      for record in generator(lastgood_ts):
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/drivers/__init__.py", line 30, in genArchiveRecords
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      raise NotImplementedError("Method 'genArchiveRecords' not implemented")
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  NotImplementedError: Method 'genArchiveRecords' not implemented
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  During handling of the above exception, another exception occurred:
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  Traceback (most recent call last):
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 903, in main
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      engine.run()
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 208, in run
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      self.dispatchEvent(weewx.Event(weewx.POST_LOOP))
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 230, in dispatchEvent
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      callback(event)
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 600, in post_loop
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      self._software_catchup()
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 657, in _software_catchup
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, record=record, origin='software'))
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 230, in dispatchEvent
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      callback(event)
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/user/filepile.py", line 91, in new_archive_record
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      new_record_data[self.label_map.get(name, name)] = to_float(value)
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weeutil/weeutil.py", line 1250, in to_float
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****      return float(x) if x is not None else None
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  ValueError: could not convert string to float: 
Jan  7 15:50:16 JV-Wx weewx[24318] CRITICAL weewx.engine:     ****  Exiting.

Ralph Underwood

unread,
Jan 7, 2020, 11:17:43 PM1/7/20
to weewx-development
WeeWx has been running fine since I restarted it at 19:40.


Thomas Keffer

unread,
Jan 8, 2020, 7:49:15 AM1/8/20
to weewx-development
One of the strings in the file that filepile is reading cannot be converted to a number. It probably looks something like

outTemp =

or possibly

outTemp = ""

This is probably a bug in filepile. It should accept either of these, returning None for the value. Fixed in commit 3863f21.

Thanks for your detailed report!

-tk


--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/e50d8309-bb61-420a-be75-939cece176f8%40googlegroups.com.

Ralph Underwood

unread,
Jan 8, 2020, 11:12:41 AM1/8/20
to weewx-development
Everything ran fine all night. My guess is that this was a timing issue, where I started the sensor at the same time my python subscription program was running and somehow managed to write an incomplete file for filepile. I overwrite the file each time so I can't go back and see what actually happened. 

In other news, WeeWx 4.0.0b6 appears to be very stable. I have the mem skin working and it is drawing nice flat lines. With the 3.? version and 'old' Ultimeter driver I was seeing a slow but steady increase in memory use until it would crash. I was also using cmom on the 3.? version, so that may have been a factor in the memory problem.

I have a station running in my basement lab in Seattle that I plan on converting to the mqtt service instead of my standalone python subscription program and filepile.   

Thanks.

To unsubscribe from this group and stop receiving emails from it, send an email to weewx-de...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages