On Mar 3, 2010, at 6:34 AM, Kristian Rosenvold wrote:

> MavenITmng4482ForcePluginSnapshotUpdateTest was failing on my CI environment, 
> and I have found out why - the reason is a bit intricate:
> 
> My CI is one 32 bit linux node and a 64 bit linux node. Interestingly enought 
> the 64 bit vm is "server" because AFAIK that's the only 64 bit vm there is.
> 
> The 4482 integration test was consistently failing on the 64 bit node, and 
> intermittently on the 32 bit node. The failures on the 64 bit node were 
> approx 20% VM crash (inside native Zip code used
> by classloader to read jar file), 70% of a very odd error message indicating 
> that plexus configuration was inconsistent and 10% success.
> 
> The test is trying to replace the local-repo version of an extension jar 
> file. When forking maven in the int-test, the exenstion jar is locked for the 
> duration of the test and unlocked when the forked vm terminates. When running 
> the integration tests with verifier.forkMode=auto, the extension jar file is 
> kept open as long as the classloader is active. On a windows box, this will 
> effectively lock the
> file, on a linux box it's even worse, as it seemingly allows you to replace 
> the contents of the file but it actually corrupts it (or at least the 
> in-memory image, unsure of the details).
> 
> Now since the 64 bit vm is "server", it actually has quite different 
> behaviour when it comes to unloading stuff than the "client" vm. That's why 
> it was failing so much.
> 
> I found a blog post that explains it well 
> http://management-platform.blogspot.com/2009/01/classloaders-keeping-jar-files-open.html
>  
> The post references a sun bug om the issue 
> (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041014). 
> <http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041014>The bug actually 
> describes the problems I've been having on linux too.
> 
> In an isolated fix, I can disable the 4482 test when running 
> verifier.forkMode=auto. But it seems to me like there is a larger problem 
> here when running any kind of
> embedded usage; is stuff like the "-U" option actually supported ?

I believe there is code to fix this bug in the classloader code in Geronimo or 
XBean I can't remember exactly where. But Dain explained to me at one point 
that this needed to be fixed because it was causing problems in Geronimo for an 
IBM customer. 

> 
> 
> Kristian
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
----------------------------------------------------------

Reply via email to