Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull Request policy for "Merging" with target polluting workspace on Jenkins master #847

Open
lgcCerti opened this issue Apr 25, 2024 · 2 comments
Labels

Comments

@lgcCerti
Copy link

lgcCerti commented Apr 25, 2024

Jenkins and plugins versions report

Environment
Jenkins: 2.440.2
OS: Linux - 5.4.0-170-generic
Java: 17.0.10 - Private Build (OpenJDK 64-Bit Server VM)
---
ant:497.v94e7d9fffa_b_9
antisamy-markup-formatter:162.v0e6ec0fcfcf6
apache-httpcomponents-client-4-api:4.5.14-208.v438351942757
apache-httpcomponents-client-5-api:5.3.1-1.0
authentication-tokens:1.53.v1c90fd9191a_b_
bitbucket:241.v6d24a_57f9359
bitbucket-build-status-notifier:1.4.2
bitbucket-push-and-pull-request:3.0.2
bootstrap5-api:5.3.2-3
bouncycastle-api:2.30.1.77-225.v26ea_c9455fd9
branch-api:2.1144.v1425d1c3d5a_7
build-timeout:1.32
caffeine-api:3.1.8-133.v17b_1ff2e0599
checks-api:2.0.2
cloud-stats:336.v788e4055508b_
cloudbees-bitbucket-branch-source:880.vcf4056c5a_71f
cloudbees-folder:6.858.v898218f3609d
command-launcher:107.v773860566e2e
commons-lang3-api:3.13.0-62.v7d18e55f51e2
commons-text-api:1.11.0-95.v22a_d30ee5d36
credentials:1311.vcf0a_900b_37c2
credentials-binding:642.v737c34dea_6c2
data-tables-api:1.13.8-2
display-url-api:2.200.vb_9327d658781
docker-commons:439.va_3cb_0a_6a_fb_29
docker-java-api:3.3.4-86.v39b_a_5ede342c
docker-plugin:1.5
docker-workflow:572.v950f58993843
durable-task:543.v262f6a_803410
echarts-api:5.4.3-2
email-ext:2.104
font-awesome-api:6.5.1-1
git:5.2.1
git-client:4.6.0
github:1.37.3.1
github-api:1.318-461.v7a_c09c9fa_d63
github-branch-source:1767.va_7d01ea_c7256
gradle:2.9
gson-api:2.10.1-15.v0d99f670e0a_7
handy-uri-templates-2-api:2.1.8-30.v7e777411b_148
htmlpublisher:1.33
instance-identity:185.v303dc7c645f9
ionicons-api:56.v1b_1c8c49374e
jackson2-api:2.16.1-373.ve709c6871598
jakarta-activation-api:2.0.1-3
jakarta-mail-api:2.0.1-3
javax-activation-api:1.2.0-6
javax-mail-api:1.6.2-9
jaxb:2.3.9-1
jdk-tool:73.vddf737284550
jjwt-api:0.11.5-77.v646c772fddb_0
job-dsl:1.87
joda-time-api:2.12.6-21.vca_fd74418fb_7
jquery3-api:3.7.1-1
jsch:0.2.16-86.v42e010d9484b_
json-path-api:2.8.0-21.v8b_7dc8b_1037b_
junit:1256.v002534a_5f33e
ldap:711.vb_d1a_491714dc
lockable-resources:1232.v512d6c434eb_d
mailer:463.vedf8358e006b_
matrix-auth:3.2.1
matrix-project:822.824.v14451b_c0fd42
mercurial:1260.vdfb_723cdcc81
mina-sshd-api-common:2.11.0-86.v836f585d47fa_
mina-sshd-api-core:2.11.0-86.v836f585d47fa_
multiple-scms:0.8
okhttp-api:4.11.0-157.v6852a_a_fa_ec11
pam-auth:1.10
pipeline-build-step:540.vb_e8849e1a_b_d8
pipeline-github-lib:42.v0739460cda_c4
pipeline-graph-analysis:202.va_d268e64deb_3
pipeline-groovy-lib:689.veec561a_dee13
pipeline-input-step:477.v339683a_8d55e
pipeline-milestone-step:111.v449306f708b_7
pipeline-model-api:2.2168.vf921b_4e72c73
pipeline-model-definition:2.2168.vf921b_4e72c73
pipeline-model-extensions:2.2168.vf921b_4e72c73
pipeline-rest-api:2.34
pipeline-stage-step:305.ve96d0205c1c6
pipeline-stage-tags-metadata:2.2168.vf921b_4e72c73
pipeline-stage-view:2.34
plain-credentials:143.v1b_df8b_d3b_e48
plugin-util-api:3.8.0
resource-disposer:0.23
scm-api:683.vb_16722fb_b_80b_
script-security:1313.v7a_6067dc7087
snakeyaml-api:2.2-111.vc6598e30cc65
ssh-credentials:308.ve4497b_ccd8f4
ssh-slaves:2.948.vb_8050d697fec
sshd:3.322.v159e91f6a_550
structs:325.vcb_307d2a_2782
timestamper:1.26
token-macro:400.v35420b_922dcb_
trilead-api:2.142.v748523a_76693
variant:60.v7290fc0eb_b_cd
workflow-aggregator:596.v8c21c963d92d
workflow-api:1283.v99c10937efcb_
workflow-basic-steps:1042.ve7b_140c4a_e0c
workflow-cps:3837.v305192405b_c0
workflow-durable-task-step:1313.vcb_970b_d2a_fb_3
workflow-job:1385.vb_58b_86ea_fff1
workflow-multibranch:770.v1a_d0708dd1f6
workflow-scm-step:415.v434365564324
workflow-step-api:639.v6eca_cd8c04a_a_
workflow-support:865.v43e78cc44e0d
ws-cleanup:0.45

What Operating System are you using (both controller, and any agents involved in the problem)?

Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS

Reproduction steps

  1. Create a Repository on bitbucket with a Jenkinsfile that Jenkins has access to and create a task for that repository
  2. Create a new branch with changes and push to the remote bitbucket
  3. Configure Branch source to "Merge" with target before running the pipeline
    image
  4. Commit to the main branch with changes and push to remote bitbucket
  5. Create a pull request on the repository
  6. Jenkins will create the detached head of the merge and run the pipeline
  7. Jenkins will leave this detached head in the workspace of Jenkins Master, cluttering its workspace in its @script folders

Expected Results

Merged head being removed from the Jenkins Master after the operation is finished.
Clean Workspace commands working to remove these files from Jenkins Master.

Actual Results

Jenkins Master being cluttered with detached heads until the disc space explodes.

Anything else?

An option to clear the script workspace for configuration could help a lot.

Are you interested in contributing a fix?

There may be already a fix but I haven't seen it.

@lgcCerti lgcCerti added the bug label Apr 25, 2024
@schiasileon
Copy link

Hi, we have the same problem on our build systems, cluttering up jenkins controller nodes in k8s as the controller workspaces do not get cleaned up. This leads to us having to perform several manual cleanups weekly.

This can really 'explode' the disk usage, as we have several repos that are > 1GB with several hundreds of PR builds a day.

@nfalco79
Copy link
Member

nfalco79 commented Nov 7, 2024

Expected Results

Merged head being removed from the Jenkins Master after the operation is finished.

The expectation is not correct, the strategy is about what checkout, Any kind of workspace cleanup are delegated to traits like
Check out to matching local branch or Check out to matching local branch ( I do not think Clean after checkout will work for you).
Let me know if one of these traits works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants