Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-6518

"classcache reaper" needs exemption from thread leaks

    Details

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

      Description

      This happens on IBM JDK (some system thread or what have you).

      its 100% reproducible if you just cd lucene/analysis/smartcn and run 'ant test': we time out waiting for the thread to die and fail like this:

         [junit4] Suite: org.apache.lucene.analysis.cn.smart.TestHMMChineseTokenizerFactory
         [junit4]   2> Jun 03, 2015 12:30:39 PM com.carrotsearch.randomizedtesting.ThreadLeakControl checkThreadLeaks
         [junit4]   2> WARNING: Will linger awaiting termination of 1 leaked thread(s).
         [junit4]   2> Jun 03, 2015 12:30:59 PM com.carrotsearch.randomizedtesting.ThreadLeakControl checkThreadLeaks
         [junit4]   2> SEVERE: 1 thread leaked from SUITE scope at org.apache.lucene.analysis.cn.smart.TestHMMChineseTokenizerFactory: 
         [junit4]   2>    1) Thread[id=27, name=ClassCache Reaper, state=WAITING, group=TGRP-TestHMMChineseTokenizerFactory]
         [junit4]   2>         at java.lang.Object.wait(Native Method)
         [junit4]   2>         at java.lang.Object.wait(Object.java:201)
         [junit4]   2>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:119)
         [junit4]   2>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:91)
         [junit4]   2>         at java.io.ClassCache$Reaper.run(ClassCache.java:222)
         [junit4]   2> Jun 03, 2015 12:30:59 PM com.carrotsearch.randomizedtesting.ThreadLeakControl tryToInterruptAll
         [junit4]   2> INFO: Starting to interrupt leaked threads:
         [junit4]   2>    1) Thread[id=27, name=ClassCache Reaper, state=WAITING, group=TGRP-TestHMMChineseTokenizerFactory]
         [junit4]   2> Jun 03, 2015 12:31:02 PM com.carrotsearch.randomizedtesting.ThreadLeakControl tryToInterruptAll
         [junit4]   2> SEVERE: There are still zombie threads that couldn't be terminated:
         [junit4]   2>    1) Thread[id=27, name=ClassCache Reaper, state=WAITING, group=TGRP-TestHMMChineseTokenizerFactory]
         [junit4]   2>         at java.lang.Object.wait(Native Method)
         [junit4]   2>         at java.lang.Object.wait(Object.java:201)
         [junit4]   2>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:119)
         [junit4]   2>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:91)
         [junit4]   2>         at java.io.ClassCache$Reaper.run(ClassCache.java:222)
         [junit4]   2> NOTE: test params are: codec=Asserting(Lucene50): {}, docValues:{}, sim=RandomSimilarityProvider(queryNorm=true,coord=no): {}, locale=ar_JO, timezone=Europe/Andorra
         [junit4]   2> NOTE: Linux 3.13.0-49-generic amd64/IBM Corporation 1.8.0 (64-bit)/cpus=8,threads=2,free=1204464,total=20643840
         [junit4]   2> NOTE: All tests run in this JVM: [TestHMMChineseTokenizerFactory]
         [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestHMMChineseTokenizerFactory -Dtests.seed=4546D15E2A47A285 -Dtests.locale=ar_JO -Dtests.timezone=Europe/Andorra -Dtests.asserts=true -Dtests.file.encoding=UTF-8
      

        Attachments

        1. LUCENE-6518.patch
          0.8 kB
          Dawid Weiss
        2. LUCENE-6518.patch
          1.0 kB
          Robert Muir

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              rcmuir Robert Muir
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: