Hi everyone
I'm starting multiple processes (with 'spawn' method) to run libsumo in parallel.
I'm receiving the following error after commit 5b0fcc6 (a similar error also occurs when using traci directly - logs below).
libsumo:
"
start sumo
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
start sumo
start sumo
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
time: 0.0, action: 1, reward: 0
time: 0.0, action: 0, reward: 0
start sumo
start sumo
start sumo
start sumo
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
time: 10.0, action: 1, reward: 0
Process Error
Process Error
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
time: 10.0, action: 0, reward: 0
Error: Unknown program 'online' for traffic light 'gneJ0'
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 239, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 198, in _process_chunk
return [fn(*args) for args in chunk]
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 198, in <listcomp>
return [fn(*args) for args in chunk]
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 190, in _run_simulation_possibility
raise e
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 175, in _run_simulation_possibility
_, next_action = env.reset_for_planning(execution_name)
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/sumo_env.py", line 152, in reset_for_planning
raise e
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/sumo_env.py", line 149, in reset_for_planning
traci.start(sumo_cmd_str)
File "/home/marcelo/code/sumo/tools/libsumo/__init__.py", line 160, in start
simulation.load(args[1:])
File "/home/marcelo/code/sumo/tools/libsumo/libsumo.py", line 3434, in load
return _libsumo.simulation_load(args)
libsumo.libsumo.TraCIException: Process Error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 205, in _sendback_result
exception=exception))
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/multiprocessing/queues.py", line 358, in put
obj = _ForkingPickler.dumps(obj)
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
cls(buf, protocol).dump(obj)
TypeError: can't pickle SwigPyObject objects
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/example7.py", line 76, in <module>
example.run()
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/example7.py", line 58, in run
action = "" one_state, intersection_index=index)
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 44, in choose_action
action = "" state, intersection_index)
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 105, in _choose_action
possible_actions, planning_step_list, previous_planning_actions_list, save_state_filepath_list
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 483, in _chain_from_iterable_of_lists
for element in iterable:
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/_base.py", line 598, in result_iterator
yield fs.pop().result()
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/_base.py", line 435, in result
return self.__get_result()
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
TypeError: can't pickle SwigPyObject objects
Error: Unknown program 'online' for traffic light 'gneJ0'
Process finished with exit code 1
"
traci:
"start sumo
Retrying in 1 seconds
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
start sumo
start sumo
Retrying in 1 seconds
Retrying in 1 seconds
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
succeed in start sumo
SUMO VERSION SUMO v1_9_2+0094-5b0fcc6acd
time: 0.0, action: 1, reward: 0
time: 0.0, action: 0, reward: 0
Step #10.00 (0ms ?*RT. ?UPS, TraCI: 6ms, vehicles TOT 14 ACT 14 BUF 0)
Step #10.00 (0ms ?*RT. ?UPS, TraCI: 5ms, vehicles TOT 14 ACT 14 BUF 0)
start sumo
start sumo
start sumo
start sumo
Retrying in 1 seconds
Retrying in 1 seconds
Retrying in 1 seconds
Retrying in 1 seconds
succeed in start sumosucceed in start sumo
SUMO VERSIONSUMO VERSION SUMO v1_9_2+0094-5b0fcc6acdSUMO v1_9_2+0094-5b0fcc6acd
Not connected.
Not connected.
Error: Unknown program 'online' for traffic light 'gneJ0'
Quitting (on error).
Error: Unknown program 'online' for traffic light 'gneJ0'
Quitting (on error).
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/sumo_env.py", line 155, in reset_for_planning
traci.start(sumo_cmd_str, label=self.execution_name, doSwitch=False)
File "/home/marcelo/code/sumo/tools/traci/main.py", line 170, in start
return init(sumoPort, numRetries, "localhost", label, sumoProcess, doSwitch)
File "/home/marcelo/code/sumo/tools/traci/main.py", line 140, in init
return _connections[label].getVersion()
File "/home/marcelo/code/sumo/tools/traci/connection.py", line 369, in getVersion
result = self._sendCmd(command, None, None)
File "/home/marcelo/code/sumo/tools/traci/connection.py", line 181, in _sendCmd
return self._sendExact()
File "/home/marcelo/code/sumo/tools/traci/connection.py", line 91, in _sendExact
raise FatalTraCIError("connection closed by SUMO")
traci.exceptions.FatalTraCIError: connection closed by SUMO
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 239, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 198, in _process_chunk
return [fn(*args) for args in chunk]
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 198, in <listcomp>
return [fn(*args) for args in chunk]
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 190, in _run_simulation_possibility
raise e
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 175, in _run_simulation_possibility
_, next_action = env.reset_for_planning(execution_name)
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/sumo_env.py", line 157, in reset_for_planning
traci.close()
File "/home/marcelo/code/sumo/tools/traci/main.py", line 268, in close
raise FatalTraCIError("Not connected.")
traci.exceptions.FatalTraCIError: Not connected.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/example7.py", line 76, in <module>
example.run()
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/example7.py", line 58, in run
action = "" one_state, intersection_index=index)
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 44, in choose_action
action = "" state, intersection_index)
File "/home/marcelo/code/urban-semaphore-optimization/traffic-light-optimization/test/planning_only_agent.py", line 105, in _choose_action
possible_actions, planning_step_list, previous_planning_actions_list, save_state_filepath_list
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/process.py", line 483, in _chain_from_iterable_of_lists
for element in iterable:
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/_base.py", line 598, in result_iterator
yield fs.pop().result()
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/_base.py", line 435, in result
return self.__get_result()
File "/home/marcelo/anaconda3/envs/urban-semaphore-optimization/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
traci.exceptions.FatalTraCIError: Not connected.
time: 10.0, action: 0, reward: 0
time: 10.0, action: 1, reward: 0
Step #20.00 (0ms ?*RT. ?UPS, TraCI: 9ms, vehicles TOT 27 ACT 27 BUF 0)
Step #20.00 (1ms ~= 1000.00*RT, ~27000.00UPS, TraCI: 5ms, vehicles TOT 27 ACT 27 BUF 0)
Error: tcpip::Socket::recvAndCheck @ recv: peer shutdown
Quitting (on error).
Step #0.00
Process finished with exit code 1"
Thank you in advance
Sincerely,
Marcelo d'Almeida