We are at least two guys experiencing a race condition triggered by the dispatcher service. Anyone with sufficient python-fu capable of telling us how to proceed debugging this?
Code in question:
python 3.6.8:
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: Traceback (most recent call last):
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/opt/librenms/librenms-service.py", line 48, in <module>
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: service.start()
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/opt/librenms/LibreNMS/service.py", line 404, in start
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: sleep(self.config.master_resolution)
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/opt/librenms/LibreNMS/service.py", line 550, in reap
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: handler = signal(SIGCHLD, SIG_DFL)
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/usr/lib64/python3.6/signal.py", line 48, in signal
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: return _int_to_enum(handler, Handlers)
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/usr/lib64/python3.6/signal.py", line 30, in _int_to_enum
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: return enum_klass(value)
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/usr/lib64/python3.6/enum.py", line 293, in __call__
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: return cls.__new__(cls, value)
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/usr/lib64/python3.6/enum.py", line 535, in __new__
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: return cls._missing_(value)
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: File "/usr/lib64/python3.6/enum.py", line 548, in _missing_
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: raise ValueError("%r is not a valid %s" % (value, cls.__name__))
Dec 15 11:13:21 librenms.thisisit.it librenms-service.py[19818]: TypeError: 'int' object is not callable
The traceback below is with python 3.8.6:
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: Traceback (most recent call last):
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: File "/opt/librenms/librenms-service.py", line 48, in <module>
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: Poller_0-36(INFO):Completed poller run for 1206 in 7.16s
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: service.start()
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: File "/opt/librenms/LibreNMS/service.py", line 404, in start
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: Poller_0-36(INFO):Polling device 622
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: sleep(self.config.master_resolution)
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: File "/opt/librenms/LibreNMS/service.py", line 550, in reap
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: handler = signal(SIGCHLD, SIG_DFL)
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: File "/opt/rh/rh-python38/root/lib64/python3.8/signal.py", line 48, in signal
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: return _int_to_enum(handler, Handlers)
Dec 18 13:40:08 librenms.thisisit.it librenms-service.py[9470]: TypeError: 'int' object is not callable
This traceback is from a different environment, with python 3.8.5:
Dec 17 11:09:03 HOST librenms-service.py[755]: Traceback (most recent call last):
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/opt/librenms/librenms-service.py", line 48, in <module>
Dec 17 11:09:03 HOST librenms-service.py[755]: service.start()
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/opt/librenms/LibreNMS/service.py", line 395, in start
Dec 17 11:09:03 HOST librenms-service.py[755]: self.dispatch_immediate_polling(device_id, group)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/opt/librenms/LibreNMS/service.py", line 425, in dispatch_immediate_polling
Dec 17 11:09:03 HOST librenms-service.py[755]: self.poller_manager.post_work(device_id, group)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/opt/librenms/LibreNMS/queuemanager.py", line 83, in post_work
Dec 17 11:09:03 HOST librenms-service.py[755]: self.get_queue(queue_id).put(payload)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/opt/librenms/LibreNMS/__init__.py", line 321, in put
Dec 17 11:09:03 HOST librenms-service.py[755]: self._redis.zadd(self.key, {item: time()}, nx=True)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/usr/lib/python3/dist-packages/redis/client.py", line 2391, in zadd
Dec 17 11:09:03 HOST librenms-service.py[755]: return self.execute_command('ZADD', name, *pieces, **options)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/usr/lib/python3/dist-packages/redis/client.py", line 838, in execute_command
Dec 17 11:09:03 HOST librenms-service.py[755]: conn.send_command(*args)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/usr/lib/python3/dist-packages/redis/connection.py", line 686, in send_command
Dec 17 11:09:03 HOST librenms-service.py[755]: self.send_packed_command(self.pack_command(*args),
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/usr/lib/python3/dist-packages/redis/connection.py", line 666, in send_packed_command
Dec 17 11:09:03 HOST librenms-service.py[755]: sendall(self._sock, item)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/usr/lib/python3/dist-packages/redis/_compat.py", line 8, in sendall
Dec 17 11:09:03 HOST librenms-service.py[755]: return sock.sendall(*args, **kwargs)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/opt/librenms/LibreNMS/service.py", line 550, in reap
Dec 17 11:09:03 HOST librenms-service.py[755]: handler = signal(SIGCHLD, SIG_DFL)
Dec 17 11:09:03 HOST librenms-service.py[755]: File "/usr/lib/python3.8/signal.py", line 47, in signal
Dec 17 11:09:03 HOST librenms-service.py[755]: handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
Dec 17 11:09:03 HOST librenms-service.py[755]: TypeError: 'int' object is not callable