This is Oracle being awful. They've installed a SIGCHLD handler that reaps any child process that exits, breaking any use of child processes in the application. You can probably fix it by calling signal(SIGCHLD,SIG_DFL) after connecting to uninstall their nonsense.