Skip to content

Conversation

@crasbe
Copy link
Contributor

@crasbe crasbe commented Apr 26, 2025

The native platform on RIOT spawns two processes instead of one, so that sending the termination signal to just one process might leave a stray process open. This causes a PTY leak and eventually breaks the CI servers.

With the current master:

cbuec@W11nMate:~/RIOTstuff/riot-vanilla/RIOT$ make -C tests/turo all test && ps -A | grep -i turo
make: Entering directory '/home/cbuec/RIOTstuff/riot-vanilla/RIOT/tests/turo'
using BOARD="native64" as "native" on a 64-bit system
Building application "tests_turo" for "native64" with CPU "native".

"make" -C /home/cbuec/RIOTstuff/riot-vanilla/RIOT/boards
...
"make" -C /home/cbuec/RIOTstuff/riot-vanilla/RIOT/sys/tsrb
   text    data     bss     dec     hex filename
  40572    1368   59200  101140   18b14 /home/cbuec/RIOTstuff/riot-vanilla/RIOT/tests/turo/bin/native64/tests_turo.elf
.............
----------------------------------------------------------------------
Ran 13 tests in 4.996s

OK
make: Leaving directory '/home/cbuec/RIOTstuff/riot-vanilla/RIOT/tests/turo'
  12327 ?        00:00:00 tests_turo.elf

With this PR:

cbuec@W11nMate:~/RIOTstuff/riot-vanilla/RIOT$ make -C tests/turo all test && ps -A | grep -i turo
make: Entering directory '/home/cbuec/RIOTstuff/riot-vanilla/RIOT/tests/turo'
using BOARD="native64" as "native" on a 64-bit system
Building application "tests_turo" for "native64" with CPU "native".

"make" -C /home/cbuec/RIOTstuff/riot-vanilla/RIOT/boards
...
"make" -C /home/cbuec/RIOTstuff/riot-vanilla/RIOT/sys/tsrb
   text    data     bss     dec     hex filename
  40572    1368   59200  101140   18b14 /home/cbuec/RIOTstuff/riot-vanilla/RIOT/tests/turo/bin/native64/tests_turo.elf
.............
----------------------------------------------------------------------
Ran 13 tests in 4.471s

OK
make: Leaving directory '/home/cbuec/RIOTstuff/riot-vanilla/RIOT/tests/turo'

@crasbe
Copy link
Contributor Author

crasbe commented Apr 26, 2025

Since this is not released yet, you'll have to copy the modified file to your riotctrl folder. In my case this is the following command from the base folder of this repository. Depending on your Python version, the command may vary.

cbuec@W11nMate:~/RIOTstuff/riotctrl-kill/riotctrl$ cp riotctrl/ctrl.py ~/.local/lib/python3.10/site-packages/riotctrl/ctrl.py

@crasbe
Copy link
Contributor Author

crasbe commented Apr 26, 2025

Uargh this is just stupid. pylint introduced the too-many-positional-arguments warning in 3.3.3, but the earlier versions don't know about that. But you can't disable the warnings for unrecognized options: pylint-dev/pylint#10188

So the only valid workaround is to add the max-positional-arguments setting to the setup.cfg if more than one pylint version is to be used. This changes the value globally though, but oh well.

crasbe added 2 commits April 26, 2025 15:22
The native platform on RIOT spawns two processes instead of one,
so that sending the termination signal to just one process might leave
a stray process open. This causes a PTY leak and eventually breaks the
CI servers.
@crasbe crasbe added the bug Something isn't working label Apr 26, 2025
@maribu maribu merged commit 5e679ed into RIOT-OS:master Apr 26, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants