RVM
  1. RVM
  2. RVM-613

asking if a method has a hasBaselineSaveLSRegistersAnnotation triggers classloading (and thus GC) when GC is disabled during OSR

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0, 3.0.1
    • Fix Version/s: 3.1.0
    • Component/s: Runtime
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Stack trace copied from http://jikesrvm.anu.edu.au/cattrack/results/piccolo.watson.ibm.com/core-ppc64/4664/development/Opt_1/javalex/JLex.Main

      We have to be able to answer this question in an uninterruptible fashion.

      – Stack –
      at Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/String;)V at line 627
      at Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/String;)V at line 610
      at Lorg/jikesrvm/VM; _assert(Z)V at line 588
      at Lorg/jikesrvm/scheduler/greenthreads/GreenProcessor; failIfThreadSwitchingDisabled()V at line 629
      at Lorg/jikesrvm/scheduler/greenthreads/GreenThread; morph(Z)V at line 473
      at Lorg/jikesrvm/scheduler/greenthreads/GreenThread; yield()V at line 399
      at Lorg/jikesrvm/scheduler/greenthreads/GreenScheduler; yieldInternal()V at line 637
      at Lorg/jikesrvm/scheduler/Scheduler; yield()V at line 280
      at Lorg/jikesrvm/mm/mminterface/Handshake; requestAndAwaitCompletion(I)V at line 72
      at Lorg/jikesrvm/mm/mminterface/CollectorThread; collect(Lorg/jikesrvm/mm/mminterface/Handshake;I)V at line 272
      at Lorg/jikesrvm/mm/mmtk/Collection; triggerCollectionStatic(I)V at line 127
      at Lorg/jikesrvm/mm/mmtk/Collection; triggerCollection(I)V at line 79
      at Lorg/mmtk/plan/Plan; poll(ZLorg/mmtk/policy/Space;)Z at line 891
      at Lorg/mmtk/policy/Space; acquire(I)Lorg/vmmagic/unboxed/Address; at line 397
      at Lorg/mmtk/utility/alloc/BumpPointer; allocSlowOnce(III)Lorg/vmmagic/unboxed/Address; at line 263
      at Lorg/mmtk/utility/alloc/Allocator; allocSlowInline(III)Lorg/vmmagic/unboxed/Address; at line 229
      at Lorg/mmtk/utility/alloc/BumpPointer; allocSlow(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;II)Lorg/vmmagic/unboxed/Address; at line 172
      at Lorg/mmtk/utility/alloc/BumpPointer; alloc(III)Lorg/vmmagic/unboxed/Address; at line 146
      at Lorg/mmtk/plan/generational/GenMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 88
      at Lorg/mmtk/plan/generational/marksweep/GenMSMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 90
      at Lorg/jikesrvm/mm/mminterface/MemoryManager; allocateSpace(Lorg/jikesrvm/mm/mminterface/Selected$Mutator;IIIII)Lorg/vmmagic/unboxed/Address; at line 742
      at Lorg/jikesrvm/mm/mminterface/MemoryManager; allocateArrayInternal(IILorg/jikesrvm/objectmodel/TIB;IIII)Ljava/lang/Object; at line 717
      at Lorg/jikesrvm/mm/mminterface/MemoryManager; allocateArray(IIILorg/jikesrvm/objectmodel/TIB;IIII)Ljava/lang/Object; at line 683
      at Lorg/jikesrvm/runtime/RuntimeEntrypoints; resolvedNewArray(IIILorg/jikesrvm/objectmodel/TIB;IIII)Ljava/lang/Object; at line 378
      at Lorg/jikesrvm/classloader/UTF8Convert; toUTF8(Ljava/lang/String[B at line 322
      at Lorg/jikesrvm/classloader/Atom; equals(Ljava/lang/Object;)Z at line 919
      at Lorg/jikesrvm/util/ImmutableEntryHashMapRVM; same(Ljava/lang/Object;Ljava/lang/Object;)Z at line 73
      at Lorg/jikesrvm/util/AbstractHashMapRVM; get(Ljava/lang/Object;)Ljava/lang/Object; at line 67
      at Lorg/jikesrvm/classloader/Atom; findOrCreate([BIILjava/lang/String;)Lorg/jikesrvm/classloader/Atom; at line 171
      at Lorg/jikesrvm/classloader/Atom; parseForParameterTypes(Ljava/lang/ClassLoader[Lorg/jikesrvm/classloader/TypeReference; at line 550
      at Lorg/jikesrvm/classloader/MethodReference; <init>(Lorg/jikesrvm/classloader/TypeReference;Lorg/jikesrvm/classloader/Atom;Lorg/jikesrvm/classloader/Atom;I)V at line 58
      at Lorg/jikesrvm/classloader/MemberReference; findOrCreate(Lorg/jikesrvm/classloader/TypeReference;Lorg/jikesrvm/classloader/Atom;Lorg/jikesrvm/classloader/Atom;)Lorg/jikesrvm/classloader/MemberReference; at line 93
      at Lorg/jikesrvm/classloader/RVMClass; readClass(Lorg/jikesrvm/classloader/TypeReference;Ljava/io/DataInputStream;)Lorg/jikesrvm/classloader/RVMClass; at line 1389
      at Lorg/jikesrvm/classloader/RVMClassLoader; defineClassInternal(Ljava/lang/String;Ljava/io/InputStream;Ljava/lang/ClassLoader;)Lorg/jikesrvm/classloader/RVMType; at line 336
      at Lorg/jikesrvm/classloader/RVMClassLoader; defineClassInternal(Ljava/lang/String;[BIILjava/lang/ClassLoader;)Lorg/jikesrvm/classloader/RVMType; at line 307
      at Ljava/lang/VMClassLoader; defineClass(Ljava/lang/ClassLoader;Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class; at line 99
      at <invisible method>
      at Lorg/jikesrvm/runtime/Reflection; invoke(Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 128
      at Lorg/jikesrvm/runtime/Reflection; invoke(Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 45
      at Ljava/lang/reflect/VMCommonLibrarySupport; invokeStatic(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/reflect/Method;Lorg/jikesrvm/classloader/RVMClass;)Ljava/lang/Object; at line 202
      at Ljava/lang/reflect/VMCommonLibrarySupport; invoke(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jikesrvm/classloader/RVMMethod;Ljava/lang/reflect/Method;Lorg/jikesrvm/classloader/RVMClass;)Ljava/lang/Object; at line 171
      at Ljava/lang/reflect/VMMethod; invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 80
      at Ljava/lang/reflect/Method; invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 331
      at Ljava/lang/reflect/Proxy$ClassFactory; generate(Ljava/lang/ClassLoader;)Ljava/lang/Class; at line 1269
      at Ljava/lang/reflect/Proxy; getProxyClass(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class; at line 278
      at Ljava/lang/reflect/Proxy; newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object; at line 321
      at Lorg/jikesrvm/classloader/RVMAnnotation; createValue()Ljava/lang/annotation/Annotation; at line 127
      at Lorg/jikesrvm/classloader/RVMAnnotation; getValue()Ljava/lang/annotation/Annotation; at line 107
      at Lorg/jikesrvm/classloader/AnnotatedElement; toAnnotations(Ljava/lang/Object[Ljava/lang/annotation/Annotation; at line 140
      at Lorg/jikesrvm/classloader/AnnotatedElement; getDeclaredAnnotationsInternal()[Ljava/lang/annotation/Annotation; at line 105
      at Lorg/jikesrvm/classloader/AnnotatedElement; getAnnotationsInternal()[Ljava/lang/annotation/Annotation; at line 90
      at Lorg/jikesrvm/classloader/AnnotatedElement; getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; at line 154
      at Lorg/jikesrvm/classloader/AnnotatedElement; isAnnotationPresent(Ljava/lang/Class;)Z at line 166
      at Lorg/jikesrvm/classloader/AnnotatedElement; hasBaselineSaveLSRegistersAnnotation()Z at line 296
      at Lorg/jikesrvm/osr/ppc/BaselineExecutionStateExtractor; extractState(Lorg/jikesrvm/scheduler/RVMThread;Lorg/vmmagic/unboxed/Offset;Lorg/vmmagic/unboxed/Offset;I)Lorg/jikesrvm/osr/ExecutionState; at line 167
      at Lorg/jikesrvm/adaptive/OnStackReplacementPlan; execute()V at line 111
      at Lorg/jikesrvm/adaptive/recompilation/CompilationThread; run()V at line 57
      at Lorg/jikesrvm/scheduler/RVMThread; startoff()V at line 627

        Issue Links

          Activity

          Hide
          Ian Rogers added a comment -

          Broken by RVM-333/r14731. Changing isAnnotationPresent to isAnnotationDeclared should solve the problem.

          Show
          Ian Rogers added a comment - Broken by RVM-333 /r14731. Changing isAnnotationPresent to isAnnotationDeclared should solve the problem.
          Ian Rogers made changes -
          Field Original Value New Value
          Link This issue relates to RVM-333 [ RVM-333 ]
          David Grove made changes -
          Affects Version/s 3.0 [ 13530 ]
          Fix Version/s 3.0.1 [ 14378 ]
          Affects Version/s 3.0.1 [ 14378 ]
          Fix Version/s 3.0.2 [ 14620 ]
          David Grove made changes -
          Assignee David Grove [ dgrove ]
          David Grove made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          David Grove added a comment -

          Already fixed by Ian in r14870.

          Show
          David Grove added a comment - Already fixed by Ian in r14870.
          David Grove made changes -
          Assignee David Grove [ dgrove ] Ian Rogers [ ianrogers ]
          David Grove made changes -
          Resolution Fixed [ 1 ]
          Status In Progress [ 3 ] Closed [ 6 ]

            People

            • Assignee:
              Ian Rogers
              Reporter:
              David Grove
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: