jenkinsci / jenkinsci/subversion-plugin

[JENKINS-38517] “Local module directory” not supported for external libraries

Open
#1,387 16 comments 0 reactions 0 assignees View on GitHub
component:subversion-plugin imported-jira-issue pipeline priority:minor resolution:unresolved
Dominant language
Java
Stars
131
Forks
275
Avg merge
12h 4m
Merged PRs (30d)
6

Description

Multiple shared libs throw "ERROR: Library expected to contain at least one of src or vars directories" when multiple external SVN Legacy SCM libs are loaded by the Jenkinsfile and the Local module directory indicates preservation/overriding of the parent directory. (Ie, when the dot default is not used and a working copy root directory for each lib is created under the @​libs directory.

Configuration of global and folder specific libraries as shown in the attachments. The Jenkinsfile script begins

@​Library('pipeline_global_helpers') _

@​Library('pipeline_branch_build')
import com.foo.bar.Application

Running the pipeline makes it as far as checking out or updating the local working copies in the @​libs/pipeline_global_helpers and @​libs/pipeline_branch_build in the pipeline workspace on the master, but execution aborts thereafter with the stack trace

ERROR: Library pipeline_branch_build expected to contain at least one of src or vars directories

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: Loading libraries failed

1 error

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1073)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:67)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:410)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:373)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:213)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Finished: FAILURE

The libraries both have src and vars subdirectories and cause no error if used individually if checked out with Local module directory set to the default dot (no working copy root directory). I have also avoided the error once or twice when overriding/preserving the working copy root directory when loading a single external library, but not reliably. Ultimately the above error recurs.

Checking out straight into the @​libs directory is good for the single-library use case but if I attempt to use multiple libraries, the first checkout's working copy is blown away by the second library's checkout.

For now, my workaround is to use a single external library.

---
Originally reported by brianeray, imported from: “Local module directory” not supported for external libraries


  • status: Open
  • priority: Minor
  • component(s): subversion-plugin
  • label(s): pipeline
  • resolution: Unresolved
  • votes: 2
  • watchers: 4
  • imported: 20251212-090250

Raw content of original issue

Multiple shared libs throw "ERROR: Library <lib name> expected to contain at least one of src or vars directories" when multiple external SVN Legacy SCM libs are loaded by the Jenkinsfile and the Local module directory indicates preservation/overriding of the parent directory. (Ie, when the dot default is not used and a working copy root directory for each lib is created under the @libs directory.

Configuration of global and folder specific libraries as shown in the attachments. The Jenkinsfile script begins


@Library('pipeline_global_helpers') _

@Library('pipeline_branch_build')
import com.foo.bar.Application


Running the pipeline makes it as far as checking out or updating the local working copies in the @libs/pipeline_global_helpers and @libs/pipeline_branch_build in the pipeline workspace on the master, but execution aborts thereafter with the stack trace


ERROR: Library pipeline_branch_build expected to contain at least one of src or vars directories

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: Loading libraries failed

1 error

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1073)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:67)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:410)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:373)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:213)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Finished: FAILURE


The libraries both have src and vars subdirectories and cause no error if used individually if checked out with Local module directory set to the default dot (no working copy root directory). I have also avoided the error once or twice when overriding/preserving the working copy root directory when loading a single external library, but not reliably. Ultimately the above error recurs.

Checking out straight into the @libs directory is good for the single-library use case but if I attempt to use multiple libraries, the first checkout's working copy is blown away by the second library's checkout.

For now, my workaround is to use a single external library.

environment

```
LTS 2.7.4

scm-api 1.3

subversion 2.6

worfklow-cps-global-lib 2.3

Zulu OpenJDK 8.17.0.3-win64 (1.8.0_102-b14)

Win 7 Pro master--error does not involve agents
```

5 attachments

- [firefox_2016-09-23_13-54-51.png](https://issues.jenkins.io/secure/attachment/34079/firefox_2016-09-23_13-54-51.png)
> ![firefox_2016-09-23_13-54-51.png](https://issues.jenkins.io/secure/attachment/34079/firefox_2016-09-23_13-54-51.png)
- [firefox_2016-09-23_13-57-54.png](https://issues.jenkins.io/secure/attachment/34078/firefox_2016-09-23_13-57-54.png)
> ![firefox_2016-09-23_13-57-54.png](https://issues.jenkins.io/secure/attachment/34078/firefox_2016-09-23_13-57-54.png)
- [firefox_2016-09-26_13-10-08.png](https://issues.jenkins.io/secure/attachment/34081/firefox_2016-09-26_13-10-08.png)
> ![firefox_2016-09-26_13-10-08.png](https://issues.jenkins.io/secure/attachment/34081/firefox_2016-09-26_13-10-08.png)
- [firefox_2016-10-05_12-37-41.png](https://issues.jenkins.io/secure/attachment/34250/firefox_2016-10-05_12-37-41.png)
> ![firefox_2016-10-05_12-37-41.png](https://issues.jenkins.io/secure/attachment/34250/firefox_2016-10-05_12-37-41.png)
- [firefox_2016-10-10_10-38-07.png](https://issues.jenkins.io/secure/attachment/34309/firefox_2016-10-10_10-38-07.png)
> ![firefox_2016-10-10_10-38-07.png](https://issues.jenkins.io/secure/attachment/34309/firefox_2016-10-10_10-38-07.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.