-
Notifications
You must be signed in to change notification settings - Fork 244
Description
Describe the bug
A clear and concise description of what the bug is.
Attempting to call an RPC method on an agent (or other identity) which does not exist in the platform causes the VIP loop of the agent that made the call to break, terminating the agent.
To Reproduce
Steps to reproduce the behavior:
self.vip.rpc.call("platform.does_not_exist", "some_method")
Expected behavior
In VOLTTRON 8, this merely timed out, which could be caught with a gevent.timeout.Timeout exception clause
Screenshots
If applicable, add screenshots to help explain your problem.
Operating System (please complete the following information):
- OS: [e.g. iOS]
- Volttron Version [develop, releases/8.2, main]
Currently using VOLTTRON 9.0.4 (our fork, but has not been modified from upstream)
Additional context
Add any other context about the problem here.
It seems the error handling method is receiving a string instead of an errno object, which cannot be cast to an int.
Here is the traceback:
2025-10-31 10:13:18
2025-10-31 15:13:18,770 (break_rpcagent-0.1 128353 [122]) main DEBUG: breaking via RPC
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: Traceback (most recent call last):
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: handle(message)
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: File "/var/lib/volttron/volttron/platform/vip/agent/core.py", line 834, in vip_loop
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: File "src/gevent/greenlet.py", line 908, in gevent._gevent_cgreenlet.Greenlet.run
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: error = VIPError.from_errno(*args)
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: File "/var/lib/volttron/volttron/platform/vip/agent/core.py", line 585, in handle_error
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: errnum = int(errnum)
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: File "/var/lib/volttron/volttron/platform/vip/agent/errors.py", line 52, in from_errno
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: 2025-10-31T15:13:18Z <Greenlet at 0x7359f5a891c0: vip_loop> failed with ValueError
2025-10-31 10:13:18
2025-10-31 15:13:18,775 (break_rpcagent-0.1 128353 [0]) ERROR: ValueError: invalid literal for int() with base 10: 'Errno.EHOSTUNREACH'
2025-10-31 10:13:18
2025-10-31 15:13:18,776 (break_rpcagent-0.1 128353 [0]) ERROR: Traceback (most recent call last):
2025-10-31 10:13:18
2025-10-31 15:13:18,776 (break_rpcagent-0.1 128353 [0]) ERROR: File "src/gevent/greenlet.py", line 908, in gevent._gevent_cgreenlet.Greenlet.run
2025-10-31 10:13:18
2025-10-31 15:13:18,776 (break_rpcagent-0.1 128353 [0]) ERROR: File "/var/lib/volttron/volttron/platform/vip/agent/core.py", line 294, in run
2025-10-31 10:13:18
2025-10-31 15:13:18,776 (break_rpcagent-0.1 128353 [0]) ERROR: raise RuntimeError('VIP loop ended prematurely')
2025-10-31 10:13:18
2025-10-31 15:13:18,776 (break_rpcagent-0.1 128353 [0]) ERROR: RuntimeError: VIP loop ended prematurely