Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-1833

[DRLVM] deadlock during finalization

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • DRLVM
    • None
    • SLES 9 32-bit SP2; CPU 2xXeon x64
      gcc 3.3.3 drlvm debug build
    • Patch Available

    Description

      The classlib tests hang sporadically, usually in JNDI module when running all classlib unit tests (single runs of JNDI alone always ok).

      Investigation shows that there are deadlocks happening between main thread (MT) and finalizer thread (FT):
      1) MT performs classloading, it grabs ClassLoader::_lock;
      2) GC happens, FinalizerThread.startFinalization() is called, FT activates;
      3) FT invokes some finalize() method, compilation starts and grabs g_compileLock;
      4) FT waits for ClassLoader::_lock to allocate code_chunk_info;
      5) MT proceeds to compilation of FinalizerThread.spawnBalanceThreads() and waits for g_compileLock;

      Attachments

        1. H-1833.patch
          4 kB
          Alexey Varlamov
        2. H-1833.patch
          4 kB
          Alexey Varlamov

        Activity

          People

            geir Geir Magnusson Jr
            varlax Alexey Varlamov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: