matthewwall / weewx-sdr

weewx driver for software-defined radio
GNU General Public License v3.0
114 stars 74 forks source link

SDR preventing Weewx from stop? #119

Closed danimaciasperea closed 2 years ago

danimaciasperea commented 3 years ago

Hello,

First of all, thanks for the work with this driver! Since I use it, there is no way to stop in a "clean" way weewx. This is the log I get. I have seen in old issues already closed that new versions of the driver solver the problem, but I am using the last version available here (0.78). Why none of the two threads are not being terminated although _running is set to False?

Mar  6 14:32:43 SmartHomePi weewx[8753] INFO __main__: Received signal TERM (15).
Mar  6 14:32:43 SmartHomePi weewx[8753] INFO weewx.engine: Main loop exiting. Shutting engine down.
Mar  6 14:32:43 SmartHomePi weewx[8753] INFO weewx.engine: Shutting down StdReport thread
Mar  6 14:32:43 SmartHomePi weewx[8753] DEBUG weewx.engine: StdReport thread has been terminated
Mar  6 14:32:43 SmartHomePi weewx[8753] DEBUG weewx.restx: Shut down MQTT thread.
Mar  6 14:32:43 SmartHomePi weewx[8753] INFO user.sdr: shutdown process rtl_433 -M utc -F json -R 12
Mar  6 14:32:43 SmartHomePi weewx[8753] DEBUG user.sdr: waiting for stdout-thread
Mar  6 14:32:53 SmartHomePi weewx[8753] INFO user.sdr: timed out waiting for stdout-thread
Mar  6 14:32:53 SmartHomePi weewx[8753] DEBUG user.sdr: waiting for stderr-thread
Mar  6 14:33:03 SmartHomePi weewx[8753] INFO user.sdr: timed out waiting for stderr-thread
Mar  6 14:33:03 SmartHomePi weewx[8753] DEBUG user.sdr: close stdout
Mar  6 14:33:03 SmartHomePi weewx[8753] DEBUG user.sdr: close stderr
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG user.sdr: kill process
Mar  6 14:33:04 SmartHomePi weewx[8753] INFO __main__: Terminating weewx version 4.4.0
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****  Traceback (most recent call last):
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/share/weewx/weewxd", line 157, in main
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      engine.run()
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 208, in run
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      for packet in self.console.genLoopPackets():
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/share/weewx/user/sdr.py", line 2685, in genLoopPackets
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      for lines in self._mgr.get_stdout():
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/share/weewx/user/sdr.py", line 248, in get_stdout
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      line = self.stdout_queue.get(True, 3).decode()
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/lib/python3.7/queue.py", line 179, in get
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      self.not_empty.wait(remaining)
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/lib/python3.7/threading.py", line 300, in wait
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      gotit = waiter.acquire(True, timeout)
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****    File "/usr/share/weewx/weewxd", line 260, in sigTERMhandler
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****      raise Terminate
Mar  6 14:33:04 SmartHomePi weewx[8753] DEBUG __main__:     ****  Terminate
Mar  6 14:33:08 SmartHomePi weewx[8910]: Stopping weewx weather system: weewx......

Any idea?

Thanks!

Daniel

matthewwall commented 2 years ago

i rearranged the shutdown process at commit 062dfc7

please try that, and if there is still a problem, reopen this issue