NoReverseMatch exception when trying to load netmap

Bug #1316599 reported by Christian Strand Young
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Network Administration Visualized
Fix Released
Medium
Morten Brekkevold

Bug Description

NAV 4.0.1

Clicking netmap from the tools menu -> Netmap starts loading -> Error in javascript alert: "Error loading graph, please try to reload the page"

My javascript console shows the follwing:
GET https://<snip>/netmap/api/graph/layer2/3 500 (INTERNAL SERVER ERROR)

When looking at this 500 error, it gives this traceback:

NoReverseMatch: Reverse for 'ipdevinfo-interface-details-by-name' with arguments '()' and keyword arguments '{'port_name': u'', 'netbox_sysname': u'teknobyen-3etg-sw1.uninett.no'}' not found.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/dist-packages/nav/web/netmap/views.py", line 518, in api_graph_layer_2 json = _json_layer2(load_traffic, view)
File "/usr/lib/python2.7/dist-packages/nav/web/netmap/views.py", line 559, in _json_layer2 node_a, node_b, nx_metadata in graph.edges_iter(data=True)]
File "/usr/lib/python2.7/dist-packages/nav/netmap/metadata.py", line 375, in edge_to_json_layer2 metadata_for_edges.append(edge.to_json())
File "/usr/lib/python2.7/dist-packages/nav/netmap/metadata.py", line 309, in to_json 'source': self.source.to_json() or 'null',
File "/usr/lib/python2.7/dist-packages/nav/netmap/metadata.py", line 147, in to_json self.interface.ifname)})
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 476, in reverse return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 396, in _reverse_with_prefix "arguments '%s' not found." % (lookup_view_s, args, kwargs))
NoReverseMatch: Reverse for 'ipdevinfo-interface-details-by-name' with arguments '()' and keyword arguments '{'port_name': u'', 'netbox_sysname': u'teknobyen-3etg-sw1.uninett.no'}' not found.

description: updated
Revision history for this message
John Reames (jwreames) wrote :

This also happens on the Wheezy package for NAV 4.1.0 as found at:
https://nav.uninett.no/debian/pool/wheezy/nav/nav/nav_4.1.0-1_all.deb

[Tue Jul 08 15:54:09 2014] [error] [Tue Jul 08 15:54:09 2014] [INFO] [pid=20402
nav.web.tools] admin successfully logged in
[Tue Jul 08 15:54:15 2014] [error] [Tue Jul 08 15:54:15 2014] [ERROR] [pid=20402
 django.request] Internal Server Error: /netmap/api/graph/layer2
[Tue Jul 08 15:54:15 2014] [error] Traceback (most recent call last):
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/djan
go/core/handlers/base.py", line 109, in get_response
[Tue Jul 08 15:54:15 2014] [error] response = callback(request, *callback_ar
gs, **callback_kwargs)
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/nav/
web/netmap/views.py", line 529, in api_graph_layer_2
[Tue Jul 08 15:54:15 2014] [error] json = _json_layer2(load_traffic)
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/nav/
web/netmap/views.py", line 559, in _json_layer2
[Tue Jul 08 15:54:15 2014] [error] node_a, node_b, nx_metadata in graph.edge
s_iter(data=True)]
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/nav/
netmap/metadata.py", line 375, in edge_to_json_layer2
[Tue Jul 08 15:54:15 2014] [error] metadata_for_edges.append(edge.to_json())
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/nav/
netmap/metadata.py", line 310, in to_json
[Tue Jul 08 15:54:15 2014] [error] 'target': self.target.to_json() or 'null'
,
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/nav/
netmap/metadata.py", line 147, in to_json
[Tue Jul 08 15:54:15 2014] [error] self.interface.ifname)})
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/djan
go/core/urlresolvers.py", line 500, in reverse
[Tue Jul 08 15:54:15 2014] [error] return iri_to_uri(resolver._reverse_with_
prefix(view, prefix, *args, **kwargs))
[Tue Jul 08 15:54:15 2014] [error] File "/usr/lib/python2.7/dist-packages/djan
go/core/urlresolvers.py", line 420, in _reverse_with_prefix
[Tue Jul 08 15:54:15 2014] [error] "arguments '%s' not found." % (lookup_vie
w_s, args, kwargs))
[Tue Jul 08 15:54:15 2014] [error] NoReverseMatch: Reverse for 'ipdevinfo-interf
ace-details-by-name' with arguments '()' and keyword arguments '{'port_name': u'
', 'netbox_sysname': u'example-switch.private.domain'}' not found.

Revision history for this message
Morten Brekkevold (mbrekkevold) wrote :

This happens because the Netmap doesn't expect nameless interfaces. Nameless interfaces should not exist, but are still being registered by ipdevpoll under some unknown circumstances.

We already have a patch for this problem, I will commit it for 4.1.1.

Changed in nav:
status: New → Confirmed
importance: Undecided → Medium
assignee: nobody → Morten Brekkevold (mbrekkevold)
milestone: none → 4.1.1
Revision history for this message
Morten Brekkevold (mbrekkevold) wrote :
Changed in nav:
status: Confirmed → Fix Committed
Revision history for this message
John Reames (jwreames) wrote :

Applied patch; problem resolved

Changed in nav:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.