You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Andrew Vaughan <aj...@netspace.net.au> on 2005/05/01 13:29:01 UTC

apr/javahl crash on Win32 (was Re: JavaHL 1.2 Problem -- Test Case attached)

svn devs please note: this bug causes the jvm to crash.  This means 
merge is not usable via javahl.

On Sat, 30 Apr 2005 06:44 am, Mark Phippard wrote:
[...]
> dlr tested it on FC3 and did not get the problem, so this might be a
> Win32 only problem.  I am going to try to test it on OS X this
> weekend.
>
> Could someone run this test on Win32 and see if they get the same
> problem?

I failed to reproduce this on Linux (Debian sarge).

I can reproduce this on Windows 2000 SP4.
(crash logs attached).

<<<< hs_err_pid1112.log >>>>
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_STACK_OVERFLOW (0xc00000fd) occurred at 
PC=0x6EED5397
Function=apr_get_username+0x47
Library=C:\svn1.2rc\Subversion\bin\libapr.dll

<snip>
(full log attached)

From the command line the equivalent commands runs fine, without asking 
for any authentication.  Mark as already commented that this only 
happens over http.  I'm wondering if this is actually an apr bug.

I would attempt to debug this, but I don't have a windows development 
environment. 

> I have attached an edited version of BasicTests.java from trunk.
>
> I added a new testMergeCrash() method.  It runs 2nd so that you do
> not have to wait.  The 1st test lets me know I have things setup
> correctly to run tests.
>
<snip> 

> Here is the new test if you want to just cut & paste it.
>
>     /**
>      * thest the basic SVNClient.merge functionality
>      * @throws Throwable
>      * @since 1.2
>      */
>     public void testMergeCrash() throws Throwable
>     {
>         // build the test setup
>         OneTest thisTest = new OneTest();
>         String wc = thisTest.getWCPath() + "/javahl_test";
>
>         String baseURL = "http://svn.collab.net/repos/subclipse";
>         String branchURL = baseURL + "/branches/subclipse-3/core";
>         String trunkURL = baseURL + "/trunk/subclipse/core";
>         Revision fromRev = new Revision.Number(1330);
>         Revision toRev = new Revision.Number(1331);
>
>         // checkout Subclipse core module from branch
>         client.checkout(branchURL, wc, Revision.HEAD, true);
>
>         // test --dry-run of r1331 from trunk
>         client.merge(trunkURL, fromRev, trunkURL, toRev, wc, false,
> true, false, true);
>
>         // now do the real merge of r1331 from trunk
>         client.merge(trunkURL, fromRev, trunkURL, toRev, wc, false,
> true, false, true);
>
>     }
>

Mark, you are passing true for the dryRun paramenter in both 
client.merge() lines.  

The crash happens in both cases.  (ie dryRun=false and dryRun=true)

My test setup
Machine 1 
- Debian Sarge
Subversion built from 1.2rc2 tarball + modified BasicTest.java from Mark 
Phippard + kaffe_patches, using apr apache neon etc as installed from 
debian packages. Sun jdk1.4.2

libapr0            2.0.53-5          
libapr0-dev        2.0.53-5          
libneon24          0.24.7.dfsg-1   
libneon24-dev      0.24.7.dfsg-1     
swig               1.3.24-1      

tests all pass with java versions sun 1.4.2, sun 1.5, IBM 1.4.2,
Sablevm 1.11.3-1

Machine 2 
- Debian Sarge 

as above but built from 1.2.x at rev 14530

- windows 2000 sp4 
1.2rc2 downloaded from tigris.org

BasicTest.java Fails with both sun 1.4.2 and 1.5 jvms

Attached error logs from sun 1.4.2 and 1.5 jvm

Hope this helps
Andrew V.

</Humour mode on>
Mark do you think this might get more attention if you just committed 
the failing test to trunk.
I believe someone is running automated tests of trunk.
</Humour mode off>