This is due to mono/mono#6555. When your file descriptor (NOFILES) limit is at unlimited or a similarly high number, it can take a very long time (30 minutes worst case) for Mono to actually start the process. This is due to file descriptor closing the runtime does after forking as the child but before execing the new process.
This problem manifests itself on the CI server for AIX when running the test suite driver.
To remedy this on AIX, you can either set a limit of the number of files the user or system can open, or you can drop the amount of file handles opened for your session as long as it's open by running ulimit -n $NUMBER_OF_DESCRIPTORS - 20000 is a reasonable value. (Ensure that the value you lower is to is below your current hard FD limit.) You can use ulimit -n without a parameter to view the current limit.
This doesn't affect PASE due to it having a hard 2000 FD limit, which isn't enough to make fork-and-exec for Mono noticeably slower.
This is due to mono/mono#6555. When your file descriptor (NOFILES) limit is at unlimited or a similarly high number, it can take a very long time (30 minutes worst case) for Mono to actually start the process. This is due to file descriptor closing the runtime does after forking as the child but before execing the new process.
This problem manifests itself on the CI server for AIX when running the test suite driver.
To remedy this on AIX, you can either set a limit of the number of files the user or system can open, or you can drop the amount of file handles opened for your session as long as it's open by running
ulimit -n $NUMBER_OF_DESCRIPTORS
- 20000 is a reasonable value. (Ensure that the value you lower is to is below your current hard FD limit.) You can useulimit -n
without a parameter to view the current limit.This doesn't affect PASE due to it having a hard 2000 FD limit, which isn't enough to make fork-and-exec for Mono noticeably slower.