jenkinsci / jenkinsci/lockable-resources-plugin

Update to 1309.ve21874387edf logs NullPointerException when old build is discarded

Open
#707 3 comments 2 reactions 0 assignees View on GitHub
Triage
Dominant language
Java
Stars
99
Forks
205
Avg merge
2d 13h
Merged PRs (30d)
8

Description

### Jenkins and plugins versions report

Environment


```text
Jenkins: 2.462.2
OS: Linux - 6.10.10-200.fc40.x86_64
Java: 11.0.24 - Red Hat, Inc. (OpenJDK 64-Bit Server VM)
---
```

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

Fedora 40, both for controller and agents

### Reproduction steps

1. Have a pipeline job that uses a lockable resource.
2. Set a "Discard old builds" option with "Log Rotation" strategy and "Max # of builds to keep" = 3.
3. Run the pipeline job 4 times.
4. Observe the Jenkins controller logs.

### Expected Results

No NPE

### Actual Results

```
Sep 20, 2024 12:50:28 AM INFO org.jenkins.plugins.lockableresources.queue.LockRunListener onDeleted
my-pipeline-job resource1
Sep 20, 2024 12:50:28 AM WARNING jenkins.util.Listeners lambda$notify$0
null
java.lang.NullPointerException
at PluginClassLoader for lockable-resources//org.jenkins.plugins.lockableresources.LockableResourcesManager.unlockBuild(LockableResourcesManager.java:655)
at PluginClassLoader for lockable-resources//org.jenkins.plugins.lockableresources.queue.LockRunListener.onDeleted(LockRunListener.java:110)
at hudson.model.listeners.RunListener.lambda$fireDeleted$4(RunListener.java:271)
at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
at jenkins.util.Listeners.notify(Listeners.java:67)
at hudson.model.listeners.RunListener.fireDeleted(RunListener.java:269)
at hudson.model.Run.delete(Run.java:1646)
at hudson.tasks.LogRotator.perform(LogRotator.java:167)
at hudson.model.Job.logRotate(Job.java:486)
at jenkins.model.JobGlobalBuildDiscarderStrategy.apply(JobGlobalBuildDiscarderStrategy.java:54)
at jenkins.model.BackgroundGlobalBuildDiscarder.lambda$processJob$0(BackgroundGlobalBuildDiscarder.java:67)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at jenkins.model.BackgroundGlobalBuildDiscarder.processJob(BackgroundGlobalBuildDiscarder.java:61)
at jenkins.model.BackgroundGlobalBuildDiscarder.execute(BackgroundGlobalBuildDiscarder.java:55)
at hudson.model.AsyncPeriodicWork.lambda$doRun$0(AsyncPeriodicWork.java:102)
at java.base/java.lang.Thread.run(Thread.java:829)
```

### Anything else?

_No response_

### Are you interested in contributing a fix?

_No response_

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.