Appreciate you have removed cmon and solved the problem; however, in having 
a more leisurely look at the cmon source I see there already s the ability 
for the user to add mounts to the ignore list via the ignored_mounts config 
option. If the ignore list is not specified by the user the default ignore 
list (hard coded in cmon.py) is used, ignored_mounts is specified then that 
list is used in lieu of the default. Furthermore, when checking a given 
mount point against the ignore list, the check used is whether the mount 
point in question starts with any of the entries in the ignore list. So 
using '/var/lib/docker' in the ignore list *should* work and cause all 
docker overlays to be ignored (the source used by cmon as the mount points 
universe on a system is the contents of /proc/mounts with the mount points 
being the second entry on each line). For info, the entries in the default 
ignore list are '/lib/init/rw', 
'/proc', '/sys', '/dev', '/afs', '/mit', '/run', '/var/lib/nfs'. So 
something like:

[ComputerMonitor]
    ....
    ignored_mounts = 
'/lib/init/rw', '/proc', '/sys', '/dev', '/afs', '/mit', '/run', 
'/var/lib/nfs', 
'/var/lib/docker'

should work. Note, the apostrophes should not be required but leaving them 
in won't hurt.

My apologies for the earlier mis-information.

Gary

On Thursday 15 February 2024 at 22:47:17 UTC+10 valken...@gmail.com wrote:

> Thanx Gary!
> It didn't cross my mind that cmon scans for mounted file systems. I added 
> /var/lib/docker/overlay2 to the ignore list, but the error persisted. To 
> save me from further troubles I just removed the cmon extension for the 
> time being. I will inform Matthew.
>
> Op donderdag 15 februari 2024 om 02:03:10 UTC+1 schreef gjr80:
>
>> Correct. Cmon will try to scan all mounted file systems except for those 
>> in an ignore list. Problem is the ignore list is not user configurable via 
>> a config file, rather it is hard coded in cmon.py. You have a few 
>> options; (1) raise an issue against the weewx-cmon repo and ask for Matthew 
>> to make the ignore list user configurable, (2) drop cmon from your system 
>> or (3) manually change the ignore list in cmon.py to exclude your docker 
>> overlays. I'd suggest a combination of (3) and (1).
>>
>> Have a look at line 266 in cmon.py 
>> <https://github.com/matthewwall/weewx-cmon/blob/master/bin/user/cmon.py#L266>,
>>  
>> just add your docker overlay to the list. Not sure you can add one wildcard 
>> entry for all docker overlays but a bit of experimentation will get you 
>> there. 
>>
>> Gary
>>
>> And do raise an issue for when Matthew does get some time for cmon.  
>>
>> On Thursday 15 February 2024 at 02:14:31 UTC+10 valken...@gmail.com 
>> wrote:
>>
>>> Since upgrading to weewx 5.02 on ubuntue 22.04, deb instaal. I had some 
>>> issues becuase weewx does not run as root user anymore. Most of the were 
>>> easy to solve. However on this ubuntu also a docker instance is running for 
>>> another application. 
>>> My syslog now tells me this:
>>>
>>> INFO weewx.engine: Main loop exiting. Shutting engine down.
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: INFO weewx.engine: Shutting 
>>> down StdReport thread
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: Caught 
>>> OSError: [Errno 13] Toegang geweigerd: 
>>> '/var/lib/docker/overlay2/f40006ded3b1ca4e49c40cb408c89374b8b4a067f4de13711cf4be188137d355/merged'
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  Traceback (most recent call last):
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 210, in run
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet))
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      callback(event)
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 660, in check_loop
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      raise BreakLoop
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  weewx.engine.BreakLoop
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  During handling of the above exception, another exception occurred:
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  Traceback (most recent call last):
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 676, in post_loop
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      self._catchup(self.engine.console.genArchiveRecords)
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 723, in _catchup
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      for record in generator(lastgood_ts):
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/drivers/__init__.py", line 31, in 
>>> genArchiveRecords
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      raise NotImplementedError("Method 'genArchiveRecords' not implemented")
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  NotImplementedError: Method 'genArchiveRecords' not implemented
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  During handling of the above exception, another exception occurred:
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  Traceback (most recent call last):
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewxd.py", line 166, in main
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      engine.run()
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 217, in run
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      self.dispatchEvent(weewx.Event(weewx.POST_LOOP))
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      callback(event)
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 678, in post_loop
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      self._software_catchup()
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 741, in _software_catchup
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD,
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      callback(event)
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/etc/weewx/bin/user/cmon.py", line 723, in new_archive_record
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      self.save_data(self.get_data(now, self.last_ts))
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/etc/weewx/bin/user/cmon.py", line 743, in get_data
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      record = self.collector.get_data(now_ts)
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>    File "/etc/weewx/bin/user/cmon.py", line 551, in get_data
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>      st = os.statvfs(disk)
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  PermissionError: [Errno 13] Toegang geweigerd: 
>>> '/var/lib/docker/overlay2/f40006ded3b1ca4e49c40cb408c89374b8b4a067f4de13711cf4be188137d355/merged'
>>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__:     **** 
>>>  Waiting 10 seconds then retrying...
>>> Feb 14 16:55:25 kwsweerstation weewxd[9005]: INFO __main__: retrying...
>>>
>>> As far as I understand it appears weewx is trying to access a docker 
>>> overlay  file, and doesn´t have the appropriate rights. Now I don't 
>>> understand what weewx has to do with my docker installation? Or am I totaly 
>>> missing the point of the issue here? I'm not sure how to fix this one. 
>>> Stopping docker seems to resolve the issue. 
>>>
>>

-- 
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/40844796-54ee-43fd-873d-7d9319f50f7bn%40googlegroups.com.

Reply via email to