ci: fix Xvfb conflicts due to parallel builds

By default these settings are disable:
```java
    /** Let Xvfb pick display number */
    private boolean autoDisplayName = false;
```
https://github.com/jenkinsci/xvfb-plugin/blob/88cb84e0/src/main/java/org/jenkinsci/plugins/xvfb/Xvfb.java#L434-L435
```java
    /** Run on same node in parallel */
    private boolean parallelBuild = false;
```
https://github.com/jenkinsci/xvfb-plugin/blob/88cb84e0/src/main/java/org/jenkinsci/plugins/xvfb/Xvfb.java#L440-L441

Which means that this code doesn't have an effect by default:
```java
        final int executorNumber= executor.getNumber();

        if (parallelBuild) {
            final Computer[] computers = Jenkins.get().getComputers();
            final int nodeIndex = Arrays.binarySearch(computers, currentComputer, ComputerNameComparator.INSTANCE);

            return nodeIndex * 100 + executorNumber + displayNameOffset;
        }
        else {
            return executorNumber + displayNameOffset;
        }
```
https://github.com/jenkinsci/xvfb-plugin/blob/88cb84e0/src/main/java/org/jenkinsci/plugins/xvfb/Xvfb.java#L637-L647

And causes errors like this:
```
$ /usr/bin/Xvfb :0 -screen 0 1024x768x24 -fbdir /home/jenkins/workspace/desktop_branches_uitests_PR-6952/.xvfb-3-..fbdir7194278924155710961
Xvfb starting(EE)
Fatal server error:
(EE) Server is already active for display 0
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
Jakub Sokołowski 2022-08-10 16:27:04 +02:00
parent a87003709f
commit 44ed858363
No known key found for this signature in database
GPG Key ID: 09AA5403E54D9931
1 changed files with 5 additions and 1 deletions

View File

@ -64,7 +64,11 @@ pipeline {
stage('Tests') { stage('Tests') {
steps { steps {
wrap([$class: 'Xvfb']) { wrap([
$class: 'Xvfb',
autoDisplayName: true,
parallelBuild: true,
]) {
script { script {
def res = squish([ def res = squish([
extraOptions: ''' extraOptions: '''