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

MockDirectoryFactory.exists() behaves diff then other impls -- can cause FullSolrCloudDistribCmdsTest failures due to SolrCore.initIndex incorrectly thinking index directory for brand new SolrCores already exist?

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 7.3, 8.0
    • Component/s: None
    • Labels:
      None

      Description

      There's been quite a few jenkins failures from FullSolrCloudDistribCmdsTest that all seem to follow a similar pattern:

      • Failure manifests as "Could not find collection:collection2"
      • Failing seeds frequently reproduce, but aren't guaranteed to
      • Root cause can be traced back to the collection creation failing because one of more replica cores failed due to the brand new (Solr)IndexWriter expects to find an existing segments file
        • SolrCore should have already created an (empty) index in SolrCore.initIndex(...)
        • The fact that the SolrIndexWrite throws this exception in it's constructor suggests that the earlier call to SolrCore.initIndex(...) is not functioning reliably
        • Based on some experimenting i've done, it seems like the underlying problem is that in SolrCore.initIndex(...) the DirectoryFactory can "lie" about wether a directory already exists.

      More details to follow in comments.

        Attachments

        1. log.txt
          872 kB
          Hoss Man
        2. SOLR-11988_nocommit_logging.patch
          1 kB
          Hoss Man
        3. SOLR-11988.patch
          7 kB
          Hoss Man

          Activity

            People

            • Assignee:
              hossman Hoss Man
              Reporter:
              hossman Hoss Man
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: