raiden-network / raiden-services

Development of the Raiden Monitoring and Pathfinding Services
MIT License
10 stars 18 forks source link

Crash on route request #219

Closed palango closed 5 years ago

palango commented 5 years ago

Problem Definition

When working on the integration test I ran into the following crash.

The nodes have no open channel yet, but this shouldn't crash like this anyways.

Exception on /api/v1/0x6B2e38aC72bb94fE48b6e8aFb700647C9e668851/paths [POST]
Traceback (most recent call last):
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 273, in error_router
    return original_handler(e)
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 480, in wrapper
    resp = resource(*args, **kwargs)
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask/views.py", line 88, in view
    return self.dispatch_request(*args, **kwargs)
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 595, in dispatch_request
    resp = meth(*args, **kwargs)
  File "/Users/paul/Projects/brainbot/raiden-services/src/pathfinding_service/api/rest.py", line 130, in post
    source=args['from'], target=args['to'], value=args.value, max_paths=args.max_paths
  File "/Users/paul/Projects/brainbot/raiden-services/src/pathfinding_service/model/token_network.py", line 199, in get_paths
    for path in all_paths
  File "/Users/paul/Projects/brainbot/raiden-services/src/pathfinding_service/model/token_network.py", line 198, in <genexpr>
    path
  File "/Users/paul/Projects/brainbot/raiden-services/venv/lib/python3.7/site-packages/networkx/algorithms/simple_paths.py", line 340, in shortest_simple_paths
    raise nx.NodeNotFound('source node %s not in graph' % source)
networkx.exception.NodeNotFound: source node 0x4Ba900baDc2248cc9dfEBF0a1Cd50a2Efb14b6F7 not in graph
karlb commented 5 years ago

Should we just return an empty list of routes in that case?