You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vera Petrashkova (JIRA)" <ji...@apache.org> on 2007/02/02 14:53:05 UTC

[jira] Created: (HARMONY-3116) [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop

[drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop
---------------------------------------------------------------------------------------

                 Key: HARMONY-3116
                 URL: https://issues.apache.org/jira/browse/HARMONY-3116
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
         Environment: Windows and Linux
            Reporter: Vera Petrashkova


The following test demonstrates that finally block becomes unreachable on Jitrino/JET when while(true) loop is used in try statement.
VM hangs. 
On Jitrino/OPT and interpreter this test finishes successfully
--------------------
public class testFinally {
    public static boolean started= false;

    public static void main(String[] args) throws Exception {
        Thread t  = new Thread(new TT());
        t.start();
        while(!started){
        }
        t.stop();
        System.err.println("Thread.stop()");
    }

    static class TT implements Runnable {    
        public void run() {
            started = true;
            try{
                synchronized(this) {
                    while (true){
                    }
                }
            } finally {
                System.err.println("PASSED: thread was interrupted ");
            }
        }
    }
}
---------------------
VM reports  "Thread.stop()" and gangs.

On Jitrino/OPT output is:
Thread.stop() 
PASSED: thread was interrupted 




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HARMONY-3116) [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov reassigned HARMONY-3116:
----------------------------------------

    Assignee: Alexey Varlamov

> [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3116
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3116
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Assigned To: Alexey Varlamov
>         Attachments: 0001-drlvm-jet-.jet-does-not-insert-GC-safepoints-into-some-endless-loops.txt
>
>
> The following test demonstrates that finally block becomes unreachable on Jitrino/JET when while(true) loop is used in try statement.
> VM hangs. 
> On Jitrino/OPT and interpreter this test finishes successfully
> --------------------
> public class testFinally {
>     public static boolean started= false;
>     public static void main(String[] args) throws Exception {
>         Thread t  = new Thread(new TT());
>         t.start();
>         while(!started){
>         }
>         t.stop();
>         System.err.println("Thread.stop()");
>     }
>     static class TT implements Runnable {    
>         public void run() {
>             started = true;
>             try{
>                 synchronized(this) {
>                     while (true){
>                     }
>                 }
>             } finally {
>                 System.err.println("PASSED: thread was interrupted ");
>             }
>         }
>     }
> }
> ---------------------
> VM reports  "Thread.stop()" and gangs.
> On Jitrino/OPT output is:
> Thread.stop() 
> PASSED: thread was interrupted 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3116) [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop

Posted by "Alex Astapchuk (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Astapchuk updated HARMONY-3116:
------------------------------------

    Attachment: 0001-drlvm-jet-.jet-does-not-insert-GC-safepoints-into-some-endless-loops.txt

The fix. 
The problem was that .jet detected back branches as "current_pc < target_pc".
This resulted in leaving the endless 'GOTO itself" (current_pc == target_pc) without the yield point.


> [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3116
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3116
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Attachments: 0001-drlvm-jet-.jet-does-not-insert-GC-safepoints-into-some-endless-loops.txt
>
>
> The following test demonstrates that finally block becomes unreachable on Jitrino/JET when while(true) loop is used in try statement.
> VM hangs. 
> On Jitrino/OPT and interpreter this test finishes successfully
> --------------------
> public class testFinally {
>     public static boolean started= false;
>     public static void main(String[] args) throws Exception {
>         Thread t  = new Thread(new TT());
>         t.start();
>         while(!started){
>         }
>         t.stop();
>         System.err.println("Thread.stop()");
>     }
>     static class TT implements Runnable {    
>         public void run() {
>             started = true;
>             try{
>                 synchronized(this) {
>                     while (true){
>                     }
>                 }
>             } finally {
>                 System.err.println("PASSED: thread was interrupted ");
>             }
>         }
>     }
> }
> ---------------------
> VM reports  "Thread.stop()" and gangs.
> On Jitrino/OPT output is:
> Thread.stop() 
> PASSED: thread was interrupted 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HARMONY-3116) [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov resolved HARMONY-3116.
--------------------------------------

    Resolution: Fixed

Applied at 505245, thanks!

> [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3116
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3116
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Assigned To: Alexey Varlamov
>         Attachments: 0001-drlvm-jet-.jet-does-not-insert-GC-safepoints-into-some-endless-loops.txt
>
>
> The following test demonstrates that finally block becomes unreachable on Jitrino/JET when while(true) loop is used in try statement.
> VM hangs. 
> On Jitrino/OPT and interpreter this test finishes successfully
> --------------------
> public class testFinally {
>     public static boolean started= false;
>     public static void main(String[] args) throws Exception {
>         Thread t  = new Thread(new TT());
>         t.start();
>         while(!started){
>         }
>         t.stop();
>         System.err.println("Thread.stop()");
>     }
>     static class TT implements Runnable {    
>         public void run() {
>             started = true;
>             try{
>                 synchronized(this) {
>                     while (true){
>                     }
>                 }
>             } finally {
>                 System.err.println("PASSED: thread was interrupted ");
>             }
>         }
>     }
> }
> ---------------------
> VM reports  "Thread.stop()" and gangs.
> On Jitrino/OPT output is:
> Thread.stop() 
> PASSED: thread was interrupted 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (HARMONY-3116) [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov closed HARMONY-3116.
------------------------------------


> [drlvm][jit][jet] finally block is unreachable when try statement uses while(true) loop
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3116
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3116
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Assigned To: Alexey Varlamov
>         Attachments: 0001-drlvm-jet-.jet-does-not-insert-GC-safepoints-into-some-endless-loops.txt
>
>
> The following test demonstrates that finally block becomes unreachable on Jitrino/JET when while(true) loop is used in try statement.
> VM hangs. 
> On Jitrino/OPT and interpreter this test finishes successfully
> --------------------
> public class testFinally {
>     public static boolean started= false;
>     public static void main(String[] args) throws Exception {
>         Thread t  = new Thread(new TT());
>         t.start();
>         while(!started){
>         }
>         t.stop();
>         System.err.println("Thread.stop()");
>     }
>     static class TT implements Runnable {    
>         public void run() {
>             started = true;
>             try{
>                 synchronized(this) {
>                     while (true){
>                     }
>                 }
>             } finally {
>                 System.err.println("PASSED: thread was interrupted ");
>             }
>         }
>     }
> }
> ---------------------
> VM reports  "Thread.stop()" and gangs.
> On Jitrino/OPT output is:
> Thread.stop() 
> PASSED: thread was interrupted 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.