PPC: Crash after C1 checkcast patched and GC

XMLWordPrintable

    • b11
    • ppc

        Compiled method with checkcast instruction that will be patched may fail, if objects moved in heap during patching runtime call.

        Example test:

        class Test {
                static class LoadLast {
                        final long value = System.nanoTime();
                }

                static Object load() {
                        return new LoadLast();
                }

                static Object work() {
                        LoadLast o = (LoadLast) load();
                        return o;
                }

                public static void main(String[] args) throws Exception {
                        System.out.println(((LoadLast) work()).value);
                }
        }

        Flags to reproduce
        -Xcomp -Xbatch
        -XX:CompileCommand=quiet -XX:CompileOnly=Test::work
        -XX:+PrintGC -XX:+TracePatching
        -XX:+FullGCALot -XX:FullGCALotStart=2110
        -XX:TieredStopAtLevel=1
        Test

        FullGCALotStart tuned to reduce number FullGCs but to make sure it will be done during checkcast patching, which accompanied with the message from TracePatching

              Assignee:
              Anton Kozlov
              Reporter:
              Anton Kozlov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: