"Pipeline failed" error in forks of projects with specific runners
Summary
We have a project with some specific runner that is used to measure timing regressions. This takes lots of resources as we need to reserve all cores of one socket for one job to avoid interference between timing measurements of concurrently running jobs. Hence we don't want these runners to be assigned to forks of the project that external contributors work on. As a consequence of this, external contributors get error messages in the web UI after pushing (about no runners being available), and one day later, they get an entirely uninformative email saying "pipeline failed" with a link to a build page that shows an empty log.
Steps to reproduce
Have a project with some specific runners and a CI job that has a tag only provided by these runners. Set things up so that forked projects do not inherit the runners. Fork the project. Push something to the fork.
What is the current bug behavior?
There are errors shown in the web UI about missing runners. Furthermore, after one day (probably the CI job timeout), there is an email saying "pipeline failed" and not saying anything else. This is very confusing for external contributors that make a fork to create merge requests for things to be merged back into the main project.
What is the expected correct behavior?
Ideally, there should be no errors whatsoever even though the project has a .gitlab-ci.yml
and no runners. This could be conditioned on it being a fork.
At the very least, there should be no errors, but just warnings (and no emails) indicating that the jobs are all stuck.
Relevant logs and/or screenshots
Here's how the build page of such a failed build looks like:
Further information
This is with GitLab Community Edition 8.16.4 (f32ee822).