You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Alexey Varlamov (JIRA)" <ji...@apache.org> on 2006/08/22 10:40:15 UTC

[jira] Commented: (HARMONY-971) [drlvm] StackOverflowError in native code is handled inaccurately

    [ http://issues.apache.org/jira/browse/HARMONY-971?page=comments#action_12429647 ] 
            
Alexey Varlamov commented on HARMONY-971:
-----------------------------------------

Geir, the release build passed just because asserts are off. 
AFAIU, no moves were done to fix this issue, and it is still reproducible with debug build.
However, mere mortals like me cannot change JIRAs, comment only.

> [drlvm] StackOverflowError in native code is handled inaccurately
> -----------------------------------------------------------------
>
>                 Key: HARMONY-971
>                 URL: http://issues.apache.org/jira/browse/HARMONY-971
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Alexey Varlamov
>         Assigned To: Geir Magnusson Jr
>
> On msvc debug build, the following test fails on assert(tmn_is_suspend_enabled());  exceptions.cpp: 143
> The stack trace is:
> >	vmcore.dll!create_exception(const char * exception_name=0x102932ec)  Line 143 + 0x20	C++
>  	vmcore.dll!exn_raise_by_name(const char * exception_name=0x102932ec)  Line 325 + 0x9	C++
>  	vmcore.dll!vectored_exception_handler(_EXCEPTION_POINTERS * nt_exception=0x06052c4c)  Line 317 + 0xa	C++
>  	ntdll.dll!7c84f937() 	
> Test to reproduce:
> public class TestStackOverflow{
> 	static int i1 = 0;
> 	static int i2 = 0;
>     public static void main(String[] argv) {
>    		try {
>    			method1(0);
>    			System.err.println("Test failed: no stack overflow reported");
>    		} catch (StackOverflowError e) {
>    			System.err.println("Test passed");
> 			//System.err.println("Stack depth was = " + (i1 + i2) /*e.getStackTrace().length*/);
> 			//e.printStackTrace();
>    		} catch (Throwable t) {
>    			System.err.println("Test failed: "+t);
>    		}
>    		System.err.println("i1="+i1+" i2="+i2);
>    	}
>     	    
>    	private static void method1(int p) {
>    		
>    		System.err.print(".");
>    		method2(++i1);
>    	}
>    	private static void method2(int p) {
>    		
>    		System.err.print(",");
>    		method1(++i2);
>    	}
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira