Simple_api_server RuntimeError: cannot schedule new futures after interpreter shutdown

Hi all~,

In, 2-Simple RMF Setup - Part 1,

After [Submit a Task] Request, simple_api_server RuntimeError is occurred.

Log output :
[simple_api_server-14] Exception in thread Thread-2 (broadcast_states):
[simple_api_server-14] Traceback (most recent call last):
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 1016, in _bootstrap_inner
[simple_api_server-14] self.run()
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 953, in run
[simple_api_server-14] self._target(*self._args, **self._kwargs)
[simple_api_server-14] File “/home/simulations/ros2_sims_ws/install/rmf_demos_panel/lib/python3.10/site-packages/rmf_demos_panel/simple_api_server.py”, line 135, in broadcast_states
[simple_api_server-14] socketio.emit(‘task_status’, tasks, broadcast=True, namespace=ns)
[simple_api_server-14] File “/usr/local/lib/python3.10/dist-packages/flask_socketio/init.py”, line 462, in emit
[simple_api_server-14] self.server.emit(event, *args, namespace=namespace, to=to,
[simple_api_server-14] TypeError: Server.emit() got an unexpected keyword argument ‘broadcast’
[simple_api_server-14] Set Server IP to: 0.0.0.0
[simple_api_server-14] Set Server port to: 0.0.0.0:8083
[simple_api_server-14] Set RMF Websocket port to: localhost:7878
[simple_api_server-14] Starting Websocket Server
[simple_api_server-14] Starting RMF_Demos API Server: 0.0.0.0:8083, with ws://localhost:7878
[simple_api_server-14] * Serving Flask app ‘rmf_demos_panel.simple_api_server’
[simple_api_server-14] * Debug mode: off
[simple_api_server-14] Address already in use
[simple_api_server-14] Port 8083 is in use by another program. Either identify and stop that program, or start the server with a different port.
[simple_api_server-14] Exception in thread Thread-2 (broadcast_states):
[simple_api_server-14] Traceback (most recent call last):
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 1016, in _bootstrap_inner
[simple_api_server-14] self.run()
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 953, in run
[simple_api_server-14] self._target(*self._args, **self._kwargs)
[simple_api_server-14] File “/home/simulations/ros2_sims_ws/install/rmf_demos_panel/lib/python3.10/site-packages/rmf_demos_panel/simple_api_server.py”, line 135, in broadcast_states
[simple_api_server-14] socketio.emit(‘task_status’, tasks, broadcast=True, namespace=ns)
[simple_api_server-14] File “/usr/local/lib/python3.10/dist-packages/flask_socketio/init.py”, line 462, in emit
[simple_api_server-14] self.server.emit(event, *args, namespace=namespace, to=to,
[simple_api_server-14] TypeError: Server.emit() got an unexpected keyword argument ‘broadcast’
[simple_api_server-14] Exception in thread Thread-3 (rmf_state_listener):
[simple_api_server-14] Traceback (most recent call last):
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 1016, in _bootstrap_inner
[simple_api_server-14] self.run()
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 953, in run
[simple_api_server-14] self._target(*self._args, **self._kwargs)
[simple_api_server-14] File “/home/simulations/ros2_sims_ws/install/rmf_demos_panel/lib/python3.10/site-packages/rmf_demos_panel/simple_api_server.py”, line 158, in rmf_state_listener
[simple_api_server-14] observer.spin(done_fut)
[simple_api_server-14] File “/home/simulations/ros2_sims_ws/install/rmf_demos_panel/lib/python3.10/site-packages/rmf_demos_panel/rmf_msg_observer.py”, line 108, in spin
[simple_api_server-14] asyncio.run(self.__internal_spin())
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/runners.py”, line 44, in run
[simple_api_server-14] return loop.run_until_complete(main)
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/base_events.py”, line 646, in run_until_complete
[simple_api_server-14] return future.result()
[simple_api_server-14] File “/home/simulations/ros2_sims_ws/install/rmf_demos_panel/lib/python3.10/site-packages/rmf_demos_panel/rmf_msg_observer.py”, line 130, in __internal_spin
[simple_api_server-14] async with websockets.serve(
[simple_api_server-14] File “/usr/local/lib/python3.10/dist-packages/websockets/legacy/server.py”, line 1099, in aenter
[simple_api_server-14] return await self
[simple_api_server-14] File “/usr/local/lib/python3.10/dist-packages/websockets/legacy/server.py”, line 1117, in await_impl
[simple_api_server-14] server = await self._create_server()
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/base_events.py”, line 1471, in create_server
[simple_api_server-14] infos = await tasks.gather(*fs)
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/base_events.py”, line 1408, in _create_server_getaddrinfo
[simple_api_server-14] infos = await self._ensure_resolved((host, port), family=family,
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/base_events.py”, line 1404, in _ensure_resolved
[simple_api_server-14] return await loop.getaddrinfo(host, port, family=family, type=type,
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/base_events.py”, line 860, in getaddrinfo
[simple_api_server-14] return await self.run_in_executor(
[simple_api_server-14] File “/usr/lib/python3.10/asyncio/base_events.py”, line 818, in run_in_executor
[simple_api_server-14] executor.submit(func, *args), loop=self)
[simple_api_server-14] File “/usr/lib/python3.10/concurrent/futures/thread.py”, line 169, in submit
[simple_api_server-14] raise RuntimeError('cannot schedule new futures after ’
[simple_api_server-14] RuntimeError: cannot schedule new futures after interpreter shutdown
[rviz2-10] [INFO] [1699420538.122471703] [rviz2]: Trying to create a map of size 384 x 384 using 1 swatches
[rviz2-10] [ERROR] [1699420538.139084568] [rviz2]: Vertex Program:rviz/glsl120/indexed_8bit_image.vert Fragment Program:rviz/glsl120/indexed_8bit_image.frag GLSL link result :slight_smile:

Let me check to see if I can reproduce the error, because its wierd

Hi,

WHen executing this command

ros2 launch unit_rmf_basics start_rmf.launch.xml

The following eerror always happens, but has no effect in our setup:

[full_control-15] [INFO] [1699435747.089378018] [dummy_fleet_adapter]: Added a robot named [dummy_1] with participant ID [0]
[simple_api_server-14] Set Server IP to: 0.0.0.0
[simple_api_server-14] Set Server port to: 0.0.0.0:8083
[simple_api_server-14] Set RMF Websocket port to: localhost:7878
[simple_api_server-14] Starting Websocket Server
[simple_api_server-14] Starting RMF_Demos API Server: 0.0.0.0:8083, with ws://localhost:7878
[simple_api_server-14] * Serving Flask app ‘rmf_demos_panel.simple_api_server’
[simple_api_server-14] * Debug mode: off
[simple_api_server-14] Exception in thread Thread-2 (broadcast_states):
[simple_api_server-14] Traceback (most recent call last):
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 1016, in _bootstrap_inner
[simple_api_server-14] self.run()
[simple_api_server-14] File “/usr/lib/python3.10/threading.py”, line 953, in run
[simple_api_server-14] self._target(*self._args, **self._kwargs)
[simple_api_server-14] File “/home/simulations/ros2_sims_ws/install/rmf_demos_panel/lib/python3.10/site-packages/rmf_demos_panel/simple_api_server.py”, line 135, in broadcast_states
[simple_api_server-14] socketio.emit(‘task_status’, tasks, broadcast=True, namespace=ns)
[simple_api_server-14] File “/usr/local/lib/python3.10/dist-packages/flask_socketio/init.py”, line 462, in emit
[simple_api_server-14] self.server.emit(event, *args, namespace=namespace, to=to,
[simple_api_server-14] TypeError: Server.emit() got an unexpected keyword argument ‘broadcast’
[rviz2-10] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-user’

Please could you state the commands that you executed? The code you used ( via a git or something similar ), otherwise debugging is much more dificult, thanks

Hi~

I tried again from the beginning of the course. The same error log happens, but task execution is possible.

Thanks for the reply.

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.