Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Assorted errors when using threads (1 new simulation per thread)

As far as I can tell you are starting a single sumo simulation and are trying to use it from multiple threads.
The traci operations are not thread safe. This is what works
- starting a different sumo simulation for each thread and using them as described in https://sumo.dlr.de/docs/TraCI/Interfacing_TraCI_from_Python.html#controlling_parallel_simulations_from_the_same_traci_script
- using your own synchronization so that only one thread is talking to sumo at the same time

regards,
Jakob

Am So., 25. Apr. 2021 um 22:46 Uhr schrieb Marcelo Andrade Rodrigues D Almeida <md@xxxxxxxxx>:
Hi everyone

I'm having trouble using multiple simulations in different threads

The difference can be perceived by changing max_workers to 1 and 2.
"        with ThreadPoolExecutor(max_workers=len(possible_actions)) as executor:" (planning_only_agent.py, line 100)

[See attached example (a very simplified version of what I'm actually using)]

With max_workers=1, it works just fine.

With 2, it gives all sort of errors:

"bad char in struct format"
"unpack requires a buffer of [x] bytes"
A lot of times it just hangs
"Received answer 0 for command 211."


The easiest way I found to reproduce is to add a breakpoint into a subscribe call and hit continue several times. It is likely to crash when threads stop at the same command, although it occurs eventually without breaking points.

Tested in version 1.9.0 (specifically v1_9_0+0210-fa53508669)

Thank you in advance


Sincerely,

Marcelo d'Almeida
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user

Back to the top