The only support contract I have is myself and my groovy script console :)

What baffles me is that the uberClassLoader can load the class, but the build 
fails to.



Robert Sandell
Sony Mobile Communications
Tel: +46 10 80 12721
sonymobile.com<http://sonymobile.com/>

From: [email protected] [mailto:[email protected]] On 
Behalf Of Stephen Connolly
Sent: den 7 april 2014 17:05
To: [email protected]
Subject: Re: Classloading issues between git and git-client plugins?!

I have nothing jumping to mind... this looks like something to do with remoting 
though... in other words the class is failing to load on the remote classloader 
not Jenkins core's classloader itself.... which probably points to Kohsuke as 
the best placed to comment. Robert, you could always open a support ticket if 
you have a support contract with somebody... ;-)

On 7 April 2014 15:57, Mark Waite 
<[email protected]<mailto:[email protected]>> wrote:
Unfortunately, I don't have any reasonable suggestions for further techniques 
to debug the classloading issue.  I am hopeful that Kohsuke or Jesse or Stephen 
have suggestions, since I think classloading is handled deep in core, well 
below the layers of my comfort.

As far as I know, most of the jar file dependencies are "up to date" in the 
git-client-plugin pom.xml and the git-plugin pom.xml.

There are two dependencies intentionally pointed at older versions.  The 
"guava" dependency is kept at 11.0.01 because Jenkins core keeps its version at 
11.0.1.  The multiple-scms dependency is kept at 0.2 because there is a known 
problem with the multiple-scms plugin 0.3.  Do you have the multiple SCMs 
plugin installed?  Is it enabled?  Are you using it?

Mark Waite

Mark Waite

On Mon, Apr 7, 2014 at 8:44 AM, Sandell, Robert 
<[email protected]<mailto:[email protected]>> wrote:
Yes those look like similar issues.
Any thoughts on how I can continue to debug the issue?
Few jobs on the currently affected masters use the git plugin, so I can keep 
them alive for a little bit more before I need to take drastic measures.



Robert Sandell
Sony Mobile Communications
Tel: +46 10 80 12721<tel:%2B46%2010%2080%2012721>
sonymobile.com<http://sonymobile.com/>

From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>] 
On Behalf Of Mark Waite
Sent: den 4 april 2014 04:38
To: [email protected]<mailto:[email protected]>
Subject: Re: Classloading issues between git and git-client plugins?!

In case it helps, https://issues.jenkins-ci.org/browse/JENKINS-21520 reports 
something similar, though the investigation there has not shown any way to 
repeat the bug.

Likewise https://issues.jenkins-ci.org/browse/JENKINS-20254 seems to be in a 
similar area.

On Thu, Apr 3, 2014 at 9:19 AM, Mark Waite 
<[email protected]<mailto:[email protected]>> wrote:

It's the credentials plugin installed, and current, and enabled?

There have been other reports of a class loader failure, but we have not been 
able to duplicate them.
On Apr 3, 2014 9:00 AM, "Sandell, Robert" 
<[email protected]<mailto:[email protected]>> wrote:
Onto my next post LTS upgrade problem.

Suddenly we see this stacktrace in build logs when the git plugin is fetching 
from the repository.

Caused by: java.lang.NoClassDefFoundError: 
org.jenkinsci.plugins.gitclient.GitClient
         at java.lang.Class.getDeclaredFields0(Native Method)
         at java.lang.Class.privateGetDeclaredFields(Class.java:2397)
         at java.lang.Class.getDeclaredField(Class.java:1946)
         at 
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1659)
         at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:72)
         at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:480)
         at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:468)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:468)
         at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:365)
         at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:602)
         at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
         at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
         at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)
         at hudson.remoting.UserResponse.retrieve(UserRequest.java:211)
         at hudson.remoting.Channel.call(Channel.java:723)

A similar stacktrace if we try to run the build on the master instead.

We got this problem at one time when we first upgraded (everything), my first 
guess was that it was because of some library changes in git-client so we 
cleaned up some old hpi and jpi files and installed the previous micro version 
of git and git client, started Jenkins and it worked again.
The other servers didn't have the problem when we upgraded them. But suddenly 
yesterday it happened in runtime. On Monday the git plugin worked and on 
Tuesday it didn't.

I've tried some Groovy debugging with the following script:

def gitClient = Jenkins.instance.pluginManager.getPlugin("git-client")
println(gitClient.classLoader.findLoadedClass("org.jenkinsci.plugins.gitclient.GitClient"))
//output: interface org.jenkinsci.plugins.gitclient.GitClient
println(Jenkins.instance.pluginManager.uberClassLoader.findClass("org.jenkinsci.plugins.gitclient.GitClient"))
//output: interface org.jenkinsci.plugins.gitclient.GitClient

def gitPlugin = Jenkins.instance.pluginManager.getPlugin("git")
println(gitPlugin.classLoader.findLoadedClass("hudson.plugins.git.GitSCM"))
//output: class hudson.plugins.git.GitSCM
println(Jenkins.instance.pluginManager.uberClassLoader.findClass("hudson.plugins.git.GitSCM"))
//output: class hudson.plugins.git.GitSCM
println(gitPlugin.classLoader.findLoadedClass("org.jenkinsci.plugins.gitclient.GitClient"))
//output: interface org.jenkinsci.plugins.gitclient.GitClient

def job = Jenkins.instance.getItem("Tools_GerritTester")
println(job.getClass().getClassLoader().findLoadedClass("org.jenkinsci.plugins.gitclient.GitClient"))
//output: null
println(job.getClass().getClassLoader().findLoadedClass("hudson.plugins.git.GitSCM"))
//output: null
println(job.getScm().getClass().getClassLoader().findLoadedClass("org.jenkinsci.plugins.gitclient.GitClient"))
//output: interface org.jenkinsci.plugins.gitclient.GitClient


The output is the same whether I run it on a master with the problem or one 
that doesn't have it.

Are there any other classloading scenarios that I've missed, or something else 
I can try to find the issue? I'd prefer to not just reboot and forget about it 
;)



Robert Sandell
Staff Engineer
Development Environment
Software Environment and Product Configuration

Sony Mobile Communications
Tel: +46 10 80 12721<tel:%2B46%2010%2080%2012721>
[email protected]<mailto:[email protected]>
sonymobile.com<http://sonymobile.com/>

[cid:[email protected]]


--
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.



--
Thanks!
Mark Waite
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.



--
Thanks!
Mark Waite
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

<<inline: image001.png>>

Reply via email to