When using the same Labgrid exporter for multiple boards, I encountered failures during parallel OpenOCD bootstrap operations.
Each board has its own OpenOCDDriver instance, but OpenOCD starts GDB(3333), telnet(4444), and TCL(6666) servers on the same default ports for every instance.
As soon as one board is already bootstrapping, OpenOCD for another board on the same exporter fails to bind one of these ports, for example:
Error: couldn't bind gdb to socket on port 3333: Address already in use
This makes parallel board testing on a shared exporter unreliable or impossible.
For Labgrid’s normal OpenOCDDriver workflow, these server ports are not useful anyways. The driver starts OpenOCD synchronously to execute bootstrap commands and does not offer a managed way to connect a GDB/telnet/TCL client or later stop a persistent OpenOCD server.
I propose disabling GDB, telnet, and TCL ports by default in OpenOCDDriver, before OpenOCD configuration files are processed. This avoids port conflicts for concurrent bootstrap operations.
When using the same Labgrid exporter for multiple boards, I encountered failures during parallel OpenOCD bootstrap operations.
Each board has its own OpenOCDDriver instance, but OpenOCD starts GDB(3333), telnet(4444), and TCL(6666) servers on the same default ports for every instance.
As soon as one board is already bootstrapping, OpenOCD for another board on the same exporter fails to bind one of these ports, for example:
This makes parallel board testing on a shared exporter unreliable or impossible.
For Labgrid’s normal OpenOCDDriver workflow, these server ports are not useful anyways. The driver starts OpenOCD synchronously to execute bootstrap commands and does not offer a managed way to connect a GDB/telnet/TCL client or later stop a persistent OpenOCD server.
I propose disabling GDB, telnet, and TCL ports by default in OpenOCDDriver, before OpenOCD configuration files are processed. This avoids port conflicts for concurrent bootstrap operations.