So, I've started looking at thread leaks. Lucene tests are, so far,
leak-free at the suite level. Solr has some problems and I could use
some help in trying to figure out how to handle these. So, the first
one is this:
TestMultiCoreConfBootstrap
This one leaks a thread from:
1) Thread[id=22, name=Thread-3, state=WAITING, group=Overseer
collection creation process.]
at sun.misc.Unsafe.park(Native Method)
at
java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
...
at
java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236)
at
org.apache.solr.cloud.DistributedQueue$LatchChildWatcher.await(DistributedQueue.java:185)
at
org.apache.solr.cloud.DistributedQueue.peek(DistributedQueue.java:291)
at
org.apache.solr.cloud.OverseerCollectionProcessor.run(OverseerCollectionProcessor.java:81)
at java.lang.Thread.run(Thread.java:722)
This thread is started by Overseer(.java):
ThreadGroup ccTg = new ThreadGroup("Overseer collection creation process.");
Thread ccThread = new Thread(ccTg, new
OverseerCollectionProcessor(reader, id, shardHandler, adminPath));
ccThread.setDaemon(true);
ccThread.start();
The fact it's a daemon thread is fine, but it still shouldn't survive
the end of the suite (should be closed/ interrupted). The problem is I
don't see how it can be closed (or interrupted) in a clean way. I am
completely green in terms of zookeeper -- what is it that I should
close/ interrupt to shut this thing down cleanly?
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]