You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2011/10/06 21:26:00 UTC

svn commit: r1179777 - /subversion/branches/1.7.x/STATUS

Author: philip
Date: Thu Oct  6 19:26:00 2011
New Revision: 1179777

URL: http://svn.apache.org/viewvc?rev=1179777&view=rev
Log:
* STATUS: Propose r1179680.

Modified:
    subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1179777&r1=1179776&r2=1179777&view=diff
==============================================================================
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Thu Oct  6 19:26:00 2011
@@ -145,6 +145,13 @@ Candidate changes:
    Votes:
      +1: stsp, danielsh
 
+ * r1179680
+   Fix javahl org.tigris.subversion to avoid double finalize.
+   Justification:
+     A double C++ delete can causes the JVM to SEGV.
+   Votes:
+     +1: philip
+
 Veto-blocked changes:
 =====================
 



Re: svn commit: r1179777 - /subversion/branches/1.7.x/STATUS

Posted by Hyrum K Wright <hy...@wandisco.com>.
On Fri, Oct 7, 2011 at 5:51 AM, Philip Martin
<ph...@wandisco.com> wrote:
> philip@apache.org writes:
>
>> Author: philip
>> Date: Thu Oct  6 19:26:00 2011
>> New Revision: 1179777
>>
>> URL: http://svn.apache.org/viewvc?rev=1179777&view=rev
>> Log:
>> * STATUS: Propose r1179680.
>>
>> Modified:
>>     subversion/branches/1.7.x/STATUS
>>
>> Modified: subversion/branches/1.7.x/STATUS
>> URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1179777&r1=1179776&r2=1179777&view=diff
>> ==============================================================================
>> --- subversion/branches/1.7.x/STATUS (original)
>> +++ subversion/branches/1.7.x/STATUS Thu Oct  6 19:26:00 2011
>> @@ -145,6 +145,13 @@ Candidate changes:
>>     Votes:
>>       +1: stsp, danielsh
>>
>> + * r1179680
>> +   Fix javahl org.tigris.subversion to avoid double finalize.
>> +   Justification:
>> +     A double C++ delete can causes the JVM to SEGV.
>> +   Votes:
>> +     +1: philip
>
> This bug causes the JVM to crash when programs use the 1.6 compatibility
> namespace, org.tigris.subversion, and allow SVNClient or SVNAdmin
> objects to be GC'd:
>
> import org.tigris.subversion.javahl.SVNClient;
> import org.tigris.subversion.javahl.SVNAdmin;
> public class SVNTest {
>    public void Test() {
>        SVNClient client = new SVNClient();
>        SVNAdmin admin = new SVNAdmin();
>    }
>    public static void main(String[] args) {
>        SVNTest test = new SVNTest();
>        test.Test();
>        System.gc();
>        test.Test();
>    }
> }
>
> I believe we don't see it in our regression tests because the tests
> only create one object of each kind and GC doesn't run at exit.
>
> I don't know much about Java, is this a 1.7 release-critical issue?

Is it "a non-edge-case crash, a data corruption problem, a major
security hole, or something equally serious"?  I would say "no".

People who are using these APIs can either wait a few weeks for 1.7.1,
or if embedding Subversion can manually include them.

-Hyrum


-- 

uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/

Re: svn commit: r1179777 - /subversion/branches/1.7.x/STATUS

Posted by Philip Martin <ph...@wandisco.com>.
philip@apache.org writes:

> Author: philip
> Date: Thu Oct  6 19:26:00 2011
> New Revision: 1179777
>
> URL: http://svn.apache.org/viewvc?rev=1179777&view=rev
> Log:
> * STATUS: Propose r1179680.
>
> Modified:
>     subversion/branches/1.7.x/STATUS
>
> Modified: subversion/branches/1.7.x/STATUS
> URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1179777&r1=1179776&r2=1179777&view=diff
> ==============================================================================
> --- subversion/branches/1.7.x/STATUS (original)
> +++ subversion/branches/1.7.x/STATUS Thu Oct  6 19:26:00 2011
> @@ -145,6 +145,13 @@ Candidate changes:
>     Votes:
>       +1: stsp, danielsh
>  
> + * r1179680
> +   Fix javahl org.tigris.subversion to avoid double finalize.
> +   Justification:
> +     A double C++ delete can causes the JVM to SEGV.
> +   Votes:
> +     +1: philip

This bug causes the JVM to crash when programs use the 1.6 compatibility
namespace, org.tigris.subversion, and allow SVNClient or SVNAdmin
objects to be GC'd:

import org.tigris.subversion.javahl.SVNClient;
import org.tigris.subversion.javahl.SVNAdmin;
public class SVNTest {
    public void Test() {
        SVNClient client = new SVNClient();
        SVNAdmin admin = new SVNAdmin();
    }
    public static void main(String[] args) {
        SVNTest test = new SVNTest();
        test.Test();
        System.gc();
        test.Test();
    }
}

I believe we don't see it in our regression tests because the tests
only create one object of each kind and GC doesn't run at exit.

I don't know much about Java, is this a 1.7 release-critical issue?

-- 
Philip