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

"classcache reaper" needs exemption from thread leaks

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 5.3, 6.0
    • None
    • 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
          1.0 kB
          Robert Muir
        2. LUCENE-6518.patch
          0.8 kB
          Dawid Weiss

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: