Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-7803

Classloading deadlock in TrieField => refactor date formatting/parsing to static utility class

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.2.1
    • Fix Version/s: 5.3, 6.0
    • Component/s: None
    • Labels:
    • Environment:

      OSX, JDK8u45

      Description

      When starting a test Sol instance, it locks up sometimes. We took a thread dump and all threads are trying to load classes via Class.forName() and are stuck in that method. One of these threads got one step further into the <clinit> of TrieField where it creates an internal static instance of TrieDateField (circular dependency). I don't know why this locks up exactly, but this code smells anyway. So I removed that instance and made the used methods static in TrieDateField.

      This does not completely remove the circular dependency, but at least it is no more in <clinit>. For the future someone may extract a util class to remove the circular dependency.

        Attachments

        1. TrieField.patch
          6 kB
          Markus Heiden
        2. SOLR-7803.patch
          58 kB
          Uwe Schindler
        3. SOLR-7803.patch
          70 kB
          Uwe Schindler

          Activity

            People

            • Assignee:
              thetaphi Uwe Schindler
              Reporter:
              markus_heiden Markus Heiden
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: