Activity log for bug #1592281

Date Who What changed Old value New value Message
2016-06-14 06:52:02 Morten Brekkevold bug added bug
2016-06-14 06:52:23 Morten Brekkevold description We are getting repeated errors from the ipdevpoll statuscheck job concering a customer's Aruba switches: 2016-06-14 08:44:34,135 [ERROR jobs.jobhandler] [statuscheck aruba-sw.example.org] Caught exception during save. Last manager = EntityManager(<class 'nav.ipdevpoll.shadows.entity.NetboxEntity'>, 'ContainerRepository'(...)). Last model = <class 'nav.ipdevpoll.shadows.entity.NetboxEntity'> Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/jobs.py", line 418, in perform_save manager.save() File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 394, in inner return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/shadows/entity.py", line 49, in save self._delete_missing() File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/shadows/entity.py", line 73, in _delete_missing to_purge = self.get_purge_list() File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/shadows/entity.py", line 99, in get_purge_list self._logger.warning( File "/usr/lib/python2.7/dist-packages/networkx/algorithms/traversal/depth_first_search.py", line 101, in dfs_tree T.add_edges_from(dfs_edges(G,source)) File "/usr/lib/python2.7/dist-packages/networkx/classes/digraph.py", line 552, in add_edges_from for e in ebunch: File "/usr/lib/python2.7/dist-packages/networkx/algorithms/traversal/depth_first_search.py", line 61, in dfs_edges stack = [(start,iter(G[start]))] File "/usr/lib/python2.7/dist-packages/networkx/classes/graph.py", line 319, in __getitem__ return self.adj[n] KeyError: <NetboxEntity: Chassis (Unnamed entity) at aruba-sw> It seems this problem arises because the Aruba switches do not present with any chassis entities in ENTITY-MIB::entPhysicalTable, but as a stack within a stack (although the switch really isn't stacked). This has unintended consequences for the system plugin, which, since it cannot see that any chassis devices have been found, creates a new one to store a collected software version in. The system plugin does not run during a statuscheck job, however, so the algorithm that checks for missing devices fails. We are getting repeated errors from the ipdevpoll statuscheck job concerning a customer's Aruba switches: 2016-06-14 08:44:34,135 [ERROR jobs.jobhandler] [statuscheck aruba-sw.example.org] Caught exception during save. Last manager = EntityManager(<class 'nav.ipdevpoll.shadows.entity.NetboxEntity'>, 'ContainerRepository'(...)). Last model = <class 'nav.ipdevpoll.shadows.entity.NetboxEntity'> Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/jobs.py", line 418, in perform_save     manager.save()   File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 394, in inner     return func(*args, **kwargs)   File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/shadows/entity.py", line 49, in save     self._delete_missing()   File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/shadows/entity.py", line 73, in _delete_missing     to_purge = self.get_purge_list()   File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/shadows/entity.py", line 99, in get_purge_list     self._logger.warning(   File "/usr/lib/python2.7/dist-packages/networkx/algorithms/traversal/depth_first_search.py", line 101,  in dfs_tree     T.add_edges_from(dfs_edges(G,source))   File "/usr/lib/python2.7/dist-packages/networkx/classes/digraph.py", line 552, in add_edges_from     for e in ebunch:   File "/usr/lib/python2.7/dist-packages/networkx/algorithms/traversal/depth_first_search.py", line 61, in dfs_edges     stack = [(start,iter(G[start]))]   File "/usr/lib/python2.7/dist-packages/networkx/classes/graph.py", line 319, in __getitem__     return self.adj[n] KeyError: <NetboxEntity: Chassis (Unnamed entity) at aruba-sw> It seems this problem arises because the Aruba switches do not present with any chassis entities in ENTITY-MIB::entPhysicalTable, but as a stack within a stack (although the switch really isn't stacked). This has unintended consequences for the system plugin, which, since it cannot see that any chassis devices have been found, creates a new one to store a collected software version in. The system plugin does not run during a statuscheck job, however, so the algorithm that checks for missing devices fails.
2016-06-15 07:53:14 Morten Brekkevold nav: milestone 4.5.1
2016-06-15 07:53:17 Morten Brekkevold nav: status Confirmed Fix Committed
2016-06-16 12:24:57 Morten Brekkevold nav: status Fix Committed Fix Released