Hello, pylucene-dev.

I have discovered memory leak. When I use ParallelMultiSearcher then
memory usage is okay.
But when I try to use object of this class under PyLucene.PythonThread
then I receive memory leaks.
Actually size of leak is not big, but when application run for hours
then memory usage is very noticable.

After start:
$ ps aux
500      18732 85.0 13.2 328624 270900 pts/1 S    07:00   0:03 
/usr/bin/python2.4 ./RemoteSearchThread.py

After 10 minutes:
$ ps aux
500      18732 94.6 14.9 357556 306592 pts/1 S    07:00   2:08 
/usr/bin/python2.4 ./RemoteSearchThread.py

After 20 minutes:
ps aux
500      18732 87.5 16.3 378804 334784 pts/1 S    07:00   4:47 
/usr/bin/python2.4 ./RemoteSearchThread.py

It never stops to leaking memory, always consuming.

I have attached example of code to reproduce bug.

Yura Smolsky.
#!/usr/bin/python2.4

from PyLucene import *
from IndexerLucene import *
import threading

class MyThread(PythonThread):
    def __init__(self, searcher):
        
        self.searcher = searcher
        PythonThread.__init__(self)
        
    def run(self):
        a = StandardAnalyzer()
        query = QueryParser.parse("bad", "content", a)
        hits = searcher.search(query)
        del self.searcher
        
        
searcher = IndexSearcher("index/index03")

parallel = ParallelMultiSearcher([searcher])

for i in range(10000000):
    th = MyThread(parallel)
    th.start()
    th.join()

_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to