Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-49588

java.lang.NullPointerException at hudson.model.Fingerprint.addWithoutSaving(Fingerprint.java:1035)

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None
    • Ubuntu
      Jenkins 2.107
    • Jenkins 2.163

      I'm not sure what's going on at this point, but I got two warnings about old data for fingerprint and now none of my builds are working.

      java.lang.NullPointerException
      	at hudson.model.Fingerprint.addWithoutSaving(Fingerprint.java:1035)
      	at hudson.model.Fingerprint.add(Fingerprint.java:1030)
      	at hudson.model.Fingerprint.addFor(Fingerprint.java:1023)
      	at com.cloudbees.plugins.credentials.CredentialsProvider.trackAll(CredentialsProvider.java:1457)
      	at com.cloudbees.plugins.credentials.CredentialsProvider.track(CredentialsProvider.java:1421)
      	at hudson.plugins.git.GitSCM.createClient(GitSCM.java:818)
      	at hudson.plugins.git.GitSCM.createClient(GitSCM.java:786)
      	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1154)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:113)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:85)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:75)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
      	at hudson.security.ACL.impersonate(ACL.java:290)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      Finished: FAILURE
      

      I am using Java version 8.

          [JENKINS-49588] java.lang.NullPointerException at hudson.model.Fingerprint.addWithoutSaving(Fingerprint.java:1035)

          Alexander Trauzzi created issue -
          William Bigno made changes -
          Summary Original: All builds failing after upgrading to 2.107 New: java.lang.AssertionError: InstanceIdentity is missing its singleton at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.get(InstanceIdentity.java:133)
          Alexander Trauzzi made changes -
          Description Original: I'm not sure what's going on at this point, but I got two warnings about old data for fingerprint and now none of my builds are working.

          {code}
          java.lang.NullPointerException
          at hudson.model.Fingerprint.addWithoutSaving(Fingerprint.java:1035)
          at hudson.model.Fingerprint.add(Fingerprint.java:1030)
          at hudson.model.Fingerprint.addFor(Fingerprint.java:1023)
          at com.cloudbees.plugins.credentials.CredentialsProvider.trackAll(CredentialsProvider.java:1457)
          at com.cloudbees.plugins.credentials.CredentialsProvider.track(CredentialsProvider.java:1421)
          at hudson.plugins.git.GitSCM.createClient(GitSCM.java:818)
          at hudson.plugins.git.GitSCM.createClient(GitSCM.java:786)
          at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1154)
          at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:113)
          at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:85)
          at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:75)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
          at hudson.security.ACL.impersonate(ACL.java:290)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)
          Finished: FAILURE
          {code}
          New: I'm not sure what's going on at this point, but I got two warnings about old data for fingerprint and now none of my builds are working.

          {code}
          java.lang.NullPointerException
          at hudson.model.Fingerprint.addWithoutSaving(Fingerprint.java:1035)
          at hudson.model.Fingerprint.add(Fingerprint.java:1030)
          at hudson.model.Fingerprint.addFor(Fingerprint.java:1023)
          at com.cloudbees.plugins.credentials.CredentialsProvider.trackAll(CredentialsProvider.java:1457)
          at com.cloudbees.plugins.credentials.CredentialsProvider.track(CredentialsProvider.java:1421)
          at hudson.plugins.git.GitSCM.createClient(GitSCM.java:818)
          at hudson.plugins.git.GitSCM.createClient(GitSCM.java:786)
          at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1154)
          at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:113)
          at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:85)
          at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:75)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
          at hudson.security.ACL.impersonate(ACL.java:290)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)
          Finished: FAILURE
          {code}

          I am using Java version 8.
          Alexander Trauzzi made changes -
          Summary Original: java.lang.AssertionError: InstanceIdentity is missing its singleton at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.get(InstanceIdentity.java:133) New: java.lang.NullPointerException at hudson.model.Fingerprint.addWithoutSaving(Fingerprint.java:1035)

          Oleg Nenashev added a comment -

          Which Jenkins version do you use?

          Oleg Nenashev added a comment - Which Jenkins version do you use?

          2.107

          Alexander Trauzzi added a comment - 2.107

          Oleg Nenashev added a comment -

          Code: https://github.com/jenkinsci/jenkins/blob/jenkins-2.107/core/src/main/java/hudson/model/Fingerprint.java#L1035

          usages object is null somehow. The only reason for that is that the Fingerprint without usages is being deserialized from the disk and then updated. I would propose to add readResolve() logic, which initializes it if needed. Such approach is documented here: https://wiki.jenkins.io/display/JENKINS/Hint+on+retaining+backward+compatibility#Hintonretainingbackwardcompatibility-Scenario:Addinganewfield

          The only recent commit around this code is https://github.com/jenkinsci/jenkins/commit/9a4a913e387c49d0c4cec602280e25c37196f83c#diff-13b73f86f1b1a0a2ff1b5e7dd13cfe39 from mikecirioli. But I doubt it would cause such behavior on deserialization. XML File for the missing fingerprint would be a way to check that.

          Oleg Nenashev added a comment - Code: https://github.com/jenkinsci/jenkins/blob/jenkins-2.107/core/src/main/java/hudson/model/Fingerprint.java#L1035 usages object is null somehow. The only reason for that is that the Fingerprint without usages is being deserialized from the disk and then updated. I would propose to add readResolve() logic, which initializes it if needed. Such approach is documented here: https://wiki.jenkins.io/display/JENKINS/Hint+on+retaining+backward+compatibility#Hintonretainingbackwardcompatibility-Scenario:Addinganewfield The only recent commit around this code is https://github.com/jenkinsci/jenkins/commit/9a4a913e387c49d0c4cec602280e25c37196f83c#diff-13b73f86f1b1a0a2ff1b5e7dd13cfe39 from mikecirioli . But I doubt it would cause such behavior on deserialization. XML File for the missing fingerprint would be a way to check that.
          Oleg Nenashev made changes -
          Component/s Original: fingerprint-plugin [ 16622 ]
          Oleg Nenashev made changes -
          Labels New: newbie-friendly

          mike cirioli added a comment -

          I will test this out later today

          mike cirioli added a comment - I will test this out later today

            mikecirioli mike cirioli
            jomega Alexander Trauzzi
            Votes:
            7 Vote for this issue
            Watchers:
            20 Start watching this issue

              Created:
              Updated:
              Resolved: