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

Git Client needs update to not extend ToolInstallation over Remoting

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Minor Minor
    • git-client-plugin
    • None
    • CloudBees CI 2.452.4.1
      Git Client plugin 5.0.0

      A user sees this warning regularly in their logs:

      WARNING hudson.tools.ToolInstallation#writeReplace: Serialization of GitTool extends ToolInstallation over Remoting is deprecated

      Full stack trace:

      2024-11-01 20:03:54.116+0000 [id=2139]  WARNING hudson.tools.ToolInstallation#writeReplace: Serialization of GitTool extends ToolInstallation over Remoting is deprecated
      java.lang.Throwable
              at hudson.tools.ToolInstallation.writeReplace(ToolInstallation.java:241)
              at jdk.internal.reflect.GeneratedMethodAccessor168.invoke(Unknown Source)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:569)
              at com.thoughtworks.xstream.core.util.SerializationMembers.callWriteReplace(SerializationMembers.java:101)
              at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:154)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:59)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:44)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeBareItem(AbstractCollectionConverter.java:94)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:66)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeCompleteItem(AbstractCollectionConverter.java:81)
              at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:59)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:83)
              at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:283)
              at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:270)
              at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:241)
              at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:174)
              at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:226)
              at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:163)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:59)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:44)
              at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:83)
              at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
              at com.thoughtworks.xstream.XStream.marshal(XStream.java:1303)
              at com.thoughtworks.xstream.XStream.marshal(XStream.java:1292)
              at com.thoughtworks.xstream.XStream.toXML(XStream.java:1265)
              at hudson.XmlFile.write(XmlFile.java:216)
              at hudson.model.Descriptor.save(Descriptor.java:915)
              at hudson.BulkChange.commit(BulkChange.java:98)
              at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:278)
              at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:360)
              at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:283)
              at io.jenkins.plugins.casc.ConfigurationAsCode.lambda$configureWith$7(ConfigurationAsCode.java:823)
              at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:773)
              at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:823)
              at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:695)
              at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:352)
              at io.jenkins.plugins.casc.ConfigurationAsCode$configure$0.call(Unknown Source)
              at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
              at hot-reload-casc_script.run(hot-reload-casc.script.groovy:2)
              at groovy.lang.GroovyShell.evaluate(GroovyShell.java:574)
              at groovy.lang.GroovyShell.evaluate(GroovyShell.java:612)
              at groovy.lang.GroovyShell.evaluate(GroovyShell.java:593)
              at com.cloudbees.opscenter.server.clusterops.steps.MasterGroovyClusterOpStep$Script.doCall(MasterGroovyClusterOpStep.java:139)
              at com.cloudbees.opscenter.server.clusterops.steps.MasterGroovyClusterOpStep$Script.doCall(MasterGroovyClusterOpStep.java:87)
              at com.cloudbees.opscenter.server.clusterops.AuthenticatedOperationsCenterToClientMasterCallable.call(AuthenticatedOperationsCenterToClientMasterCallable.java:31)
              at hudson.remoting.UserRequest.perform(UserRequest.java:211)
              at hudson.remoting.UserRequest.perform(UserRequest.java:54)
              at hudson.remoting.Request$2.run(Request.java:377)
              at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
              at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18)
              at hudson.remoting.CallableDecoratorList.lambda$applyDecorator$0(CallableDecoratorList.java:19)
              at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
              at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:80)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
              at java.base/java.lang.Thread.run(Thread.java:840)

      I am guessing that this has not come up before because it is not that common for people to use Tool Installation to manage their git client installs, and also the warning is probably easy to overlook in the Jenkins logs. I just wanted to flag this for refactoring if possible.

            Unassigned Unassigned
            owenmehegan Owen Mehegan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: