Hi,

Ok I can try that.

I am running weewx 4.3.0 installed with setup.py.

I have a SDR with weewx SDR driver and a custom extension derived from a 
BME280 extension that will inject some extra measures in the measure loop.
Regarding logs, even though I set debug=1, i find only minimal info in 
message and no stacktrace whatsoever.

So I run ./bin/weewxd > logfile 2>&1.
Below is the crash log from last night:

LOOP:   2021-02-13 02:57:20 CET (1613181440) altimeter: 30.226434601579474, 
dateTime: 1613181440, extraTemp2: 66.18199999999999, inDewpoint: 
39.600169912207505, inHumidity: 39.51263427734375, inTemp: 
64.80874633789062, maxSolarRad: 0.0, pressure: 29.54738971773132, 
radiation: 0.0, rainRate: 0.0, usUnits: 1, windBatteryStatus: 1, windDir: 
None, windGust: 0.0, windSpeed: 0.0Traceback (most recent call last):
  File "/home/weewx/bin/weedb/mysql.py", line 52, in guarded_fn
    return fn(*args, **kwargs)
  File "/home/weewx/bin/weedb/mysql.py", line 133, in __init__
    db=database_name, **kwargs)
  File "/usr/lib/python3/dist-packages/MySQLdb/__init__.py", line 86, in 
Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 204, 
in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to MySQL server 
on 'diskstation' (115)")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/weewx/bin/weewx/reportengine.py", line 196, in run
    obj.start()
  File "/home/weewx/bin/weewx/reportengine.py", line 281, in start
    self.run()
  File "/home/weewx/bin/weewx/cheetahgenerator.py", line 146, in run
    self.initExtensions(gen_dict[section_name])
  File "/home/weewx/bin/weewx/cheetahgenerator.py", line 190, in 
initExtensions
    self.search_list_objs.append(class_(self))
  File "/home/weewx/bin/weewx/cheetahgenerator.py", line 499, in __init__
    archive = self.generator.db_binder.get_manager(binding)
  File "/home/weewx/bin/weewx/manager.py", line 534, in get_manager
    self.manager_cache[data_binding] = open_manager(manager_dict, 
initialize)
  File "/home/weewx/bin/weewx/manager.py", line 687, in open_manager
    manager_dict['table_name'])
  File "/home/weewx/bin/weewx/manager.py", line 129, in open
    connection = weedb.connect(database_dict)
  File "/home/weewx/bin/weedb/__init__.py", line 92, in connect
    return driver_mod.connect(**db_dict)
  File "/home/weewx/bin/weedb/mysql.py", line 70, in connect
    database_name=database_name, engine=engine, autocommit=autocommit, 
**kwargs)
  File "/home/weewx/bin/weedb/mysql.py", line 61, in guarded_fn
    raise klass(e)
weedb.CannotConnectError: (2002, "Can't connect to MySQL server on 
'diskstation' (115)")
Traceback (most recent call last):
  File "/home/weewx/bin/weedb/mysql.py", line 52, in guarded_fn
    return fn(*args, **kwargs)
  File "/home/weewx/bin/weedb/mysql.py", line 133, in __init__
    db=database_name, **kwargs)
  File "/usr/lib/python3/dist-packages/MySQLdb/__init__.py", line 86, in 
Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 204, 
in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to MySQL server 
on 'diskstation' (115)")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/weewx/bin/weewx/reportengine.py", line 196, in run
    obj.start()
  File "/home/weewx/bin/weewx/reportengine.py", line 281, in start
    self.run()
  File "/home/weewx/bin/weewx/imagegenerator.py", line 41, in run
    self.genImages(self.gen_ts)
  File "/home/weewx/bin/weewx/imagegenerator.py", line 88, in genImages
    db_manager = self.db_binder.get_manager(binding)
  File "/home/weewx/bin/weewx/manager.py", line 534, in get_manager
    self.manager_cache[data_binding] = open_manager(manager_dict, 
initialize)
  File "/home/weewx/bin/weewx/manager.py", line 687, in open_manager
    manager_dict['table_name'])
  File "/home/weewx/bin/weewx/manager.py", line 129, in open
    connection = weedb.connect(database_dict)
  File "/home/weewx/bin/weedb/__init__.py", line 92, in connect
    return driver_mod.connect(**db_dict)
  File "/home/weewx/bin/weedb/mysql.py", line 70, in connect
    database_name=database_name, engine=engine, autocommit=autocommit, 
**kwargs)
  File "/home/weewx/bin/weedb/mysql.py", line 61, in guarded_fn
    raise klass(e)
weedb.CannotConnectError: (2002, "Can't connect to MySQL server on 
'diskstation' (115)")
Traceback (most recent call last):
  File "/home/weewx/bin/weedb/mysql.py", line 52, in guarded_fn
    return fn(*args, **kwargs)
  File "/home/weewx/bin/weedb/mysql.py", line 133, in __init__
    db=database_name, **kwargs)
  File "/usr/lib/python3/dist-packages/MySQLdb/__init__.py", line 86, in 
Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 204, 
in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to MySQL server 
on 'diskstation' (115)")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/weewx/bin/weewx/reportengine.py", line 196, in run
    obj.start()
  File "/home/weewx/bin/weewx/reportengine.py", line 281, in start
    self.run()
  File "/home/weewx/bin/weewx/cheetahgenerator.py", line 146, in run
    self.initExtensions(gen_dict[section_name])
  File "/home/weewx/bin/weewx/cheetahgenerator.py", line 190, in 
initExtensions
    self.search_list_objs.append(class_(self))
  File "/home/weewx/bin/weewx/cheetahgenerator.py", line 499, in __init__
    archive = self.generator.db_binder.get_manager(binding)
  File "/home/weewx/bin/weewx/manager.py", line 534, in get_manager
    self.manager_cache[data_binding] = open_manager(manager_dict, 
initialize)
  File "/home/weewx/bin/weewx/manager.py", line 687, in open_manager
    manager_dict['table_name'])
  File "/home/weewx/bin/weewx/manager.py", line 129, in open
    connection = weedb.connect(database_dict)
  File "/home/weewx/bin/weedb/__init__.py", line 92, in connect
    return driver_mod.connect(**db_dict)
  File "/home/weewx/bin/weedb/mysql.py", line 70, in connect
    database_name=database_name, engine=engine, autocommit=autocommit, 
**kwargs)
  File "/home/weewx/bin/weedb/mysql.py", line 61, in guarded_fn
    raise klass(e)
weedb.CannotConnectError: (2002, "Can't connect to MySQL server on 
'diskstation' (115)")

0:00:08.384725
1000.589306640625
[1000.06640625, 999.97119140625, 1001.36669921875, 1000.1455078125, 
1000.163330078125, 999.9951171875, 1000.04296875, 1000.19921875, 
1001.275146484375, 1001.266845703125]
LOOP:   2021-02-13 02:57:28 CET (1613181448) altimeter: 30.222221545855962, 
barometer: 30.262156773782465, cloudbase: 1454.6444807035157, dateTime: 
1613181448, dewpoint: 24.9344792686867, extraTemp2: 66.2, heatindex: 28.58, 
humidex: 28.58, inDewpoint: 39.49696677266399, inHumidity: 39.373779296875, 
inTemp: 64.79432678222656, maxSolarRad: 0.0, outHumidity: 86.0, outTemp: 
28.58, outTempBatteryStatus: 1, outTempDay: None, outTempNight: 28.58, 
pressure: 29.543253645019227, radiation: 0.0, rainRate: 0.0, usUnits: 1
0:00:27.803524
1000.4492431640625
[1000.06640625, 999.97119140625, 1001.279296875, 1000.1455078125, 
1000.163330078125, 999.9951171875, 1000.04296875, 1000.19921875, 
1001.275146484375, 1001.266845703125]
LOOP:   2021-02-13 02:57:56 CET (1613181476) altimeter: 30.221958642886392, 
dateTime: 1613181476, extraTemp2: 66.2, inDewpoint: 39.50952906952261, 
inHumidity: 39.3798828125, inTemp: 64.80393981933594, maxSolarRad: 0.0, 
pressure: 29.542995546007383, radiation: 0.016213107638888887, rain: 0.0, 
rainBatteryStatus: 1, rainRate: 0.0, rain_total: 86.704, usUnits: 1
0:00:10.993303
1000.4405029296875
[1000.06640625, 999.97119140625, 1001.279296875, 1001.29345703125, 
1000.163330078125, 999.9951171875, 1000.04296875, 1000.19921875, 
1001.275146484375, 1001.266845703125]
LOOP:   2021-02-13 02:58:06 CET (1613181486) altimeter: 30.22541163041881, 
dateTime: 1613181486, extraHumid1: 43.0, extraTemp2: 66.18199999999999, 
extraTemp3: 63.5, inDewpoint: 39.55189165879104, inHumidity: 
39.4317626953125, inTemp: 64.81355285644531, inTempBatteryStatus: 1, 
maxSolarRad: 0.0, pressure: 29.546385438615417, radiation: 0.0, rainRate: 
0.0, usUnits: 1
0:00:00.313137
LOOP:   2021-02-13 02:58:07 CET (1613181487) dateTime: 1613181487, 
extraHumid1: 43.0, extraTemp3: 63.5, inTempBatteryStatus: 1, maxSolarRad: 
0.0, rainRate: 0.0, usUnits: 1
0:00:14.156020
1000.5552978515625
[1000.06640625, 999.97119140625, 1001.279296875, 1001.29345703125, 
1001.2890625, 999.9951171875, 1000.04296875, 1000.19921875, 
1001.275146484375, 1001.266845703125]
LOOP:   2021-02-13 02:58:19 CET (1613181499) altimeter: 30.228797789343705, 
dateTime: 1613181499, extraTemp2: 66.18199999999999, inDewpoint: 
39.459679025970544, inHumidity: 39.3890380859375, inTemp: 64.741455078125, 
maxSolarRad: 0.0, pressure: 29.54970972505005, radiation: 0.0, rainRate: 
0.0, usUnits: 1, UV: 0.0
Traceback (most recent call last):
  File "/home/weewx/bin/user/TCS34725.py", line 115, in __init__
    self.pwm = GPIO.PWM(18, 1000)
RuntimeError: A PWM object already exists for this GPIO channel

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./bin/weewxd", line 261, in <module>
    main()
  File "./bin/weewxd", line 148, in main
    engine = weewx.engine.StdEngine(config_dict)
  File "/home/weewx/bin/weewx/engine.py", line 93, in __init__
    self.loadServices(config_dict)
  File "/home/weewx/bin/weewx/engine.py", line 161, in loadServices
    obj = weeutil.weeutil.get_object(svc)(self, config_dict)
  File "/home/weewx/bin/user/PiSensewx.py", line 121, in __init__
    self.Light=TCS34725(0X29, debug=False)
  File "/home/weewx/bin/user/TCS34725.py", line 122, in __init__
    loginf(" Exception during GPIO Init "+ str(Exception))
NameError: name 'loginf' is not defined

the mysql exception may be linked to the mysql instance nightly backup. I 
don't remembet having these on the previous nights.

the loginf is not defined (I botched my traces in exception handling), 
should have been a print.
;
PISenseWX.py is the fancy name I gave to my extension.
TCS32725.py is the sample python module provided with the pisense for 
lightsensor use.
 

On Saturday, February 13, 2021 at 7:15:45 PM UTC+1 gjr80 wrote:

> Hi,
>
> Probably easiest if you post a log extract showing the lead up to a 
> failure and the actual error trace. Also what version of WeeWX are you 
> running and is WeeWX running under python 2 or python 3?
>
> Gary
> On Sunday, 14 February 2021 at 03:39:13 UTC+10 [email protected] wrote:
>
>> Hi, 
>>
>> My Weewx dies on a daily basis a little before 3AM. The cause for the 
>> dying is some not properly handled exception that I need to fix on my own.
>>
>> However, the faulty code is in a constructor class call by the 
>> constructor of my user extension (so I would expect it to only be called 
>> once). So the question is : Is there recycling of the user extensions 
>> happening daily?
>>
>> If yes, is there a clean-up method I can implement in my extension to 
>> prevent the next constructor call from failing.
>>
>> Regards,
>>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-development/d201e8df-cc7d-4926-9a35-3d3ba483cf42n%40googlegroups.com.

Reply via email to