The issue comes down to the Python plugin using the API runtime.exec() and the
Java runtime having problems to do this job without issues. The symptoms on a linux box are:
- In the process tree you see a java process calling pylint or "python <args> pygenie"
- Both processes are sleeping
- When you look at them with strace you see both doing blocking system calls and waiting for one another
(the one epoll and the another write, when I remember correctly)
The solution is to use a smart wrapper around runtime.exec doing strange things like reading all
output of the executed process as fast as possible. The best candidate is sonar's CommandExecutor.
Read the following for details on the runtime.exec() craziness: