On Jul 21, 2008, at 22:58, Bill Janssen <[EMAIL PROTECTED]> wrote:
Here's a test case which demonstrates this problem:
---------------------------------------- test.py
-------------------------------------
import sys, os, threading, re
if __name__ == "__main__":
try:
import lucene
except ImportError:
HAVE_PYLUCENE = None
else:
HAVE_PYLUCENE = "jcc"
THREADING = "python"
class JavaCapableThread(threading.Thread):
def run(self):
if uthread.JAVA_ENV:
uthread.JAVA_ENV.attachCurrentThread(self.getName
(), self.isDaemon())
super(JavaCapableThread, self).run()
if uthread.JAVA_ENV:
uthread.JAVA_ENV.detachCurrentThread()
class uthread:
JAVA_ENV = lucene.getVMEnv() or lucene.initVM
(classpath=lucene.CLASSPATH,
vmargs=re.sub(r"\s+", ",", "-Xint"),
initialheap="64m", maxheap="512m")
def get_ident():
return repr(threading.currentThread())
get_ident = staticmethod(get_ident)
def create_new_thread(name, fn, args):
t = JavaCapableThread(None, fn, name, args)
t.setDaemon(true)
return t
create_new_thread=staticmethod(create_new_thread)
def start_new_thread(fn, args):
t = JavaCapableThread(None, fn, None, args)
t.setDaemon(true)
t.start()
return t
start_new_thread = staticmethod(start_new_thread)
def allocate_lock():
return threading.RLock()
allocate_lock = staticmethod(allocate_lock)
Not sure that's the cause but I'm pretty sure initVM() needs to be
called from the main thread (for sure, the first call to
PyEval_InitThreads(), called by some JCC init code, needs to be).
I'm not near my computer until next week so I can't give your testcase
a try until then.
Andi..
---
---
---
---
---
---
--------------------------------------------------------------------
Bill
Here's an interesting issue:
% python -v myscript.py
...
import jcc # directory /usr/lib64/python2.4/site-packages/JCC-1.9-
py2.4-linux-x86_64.egg/jcc
# /usr/lib64/python2.4/site-packages/JCC-1.9-py2.4-linux-x86_64.egg/
jcc/__init__.pyc matches /usr/lib64/python2.4/site-packages/JCC-1.9-
py2.4-linux-x86_64.egg/jcc/__init__.py
import jcc # precompiled from /usr/lib64/python2.4/site-packages/
JCC-1.9-py2.4-linux-x86_64.egg/jcc/__init__.pyc
dlopen("/usr/lib64/python2.4/site-packages/JCC-1.9-py2.4-linux-
x86_64.egg/jcc/_jcc.so", 2);
import jcc._jcc # dynamically loaded from /usr/lib64/python2.4/site-
packages/JCC-1.9-py2.4-linux-x86_64.egg/jcc/_jcc.so
#
# An unexpected error has been detected by Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00002aaab11670fa, pid=13103,
tid=46912496308032
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0-b23 mixed mode
linux-amd64)
# Problematic frame:
# C 0x00002aaab11670fa
#
# An error report file with more information is saved as:
# /tilde/janssen/hs_err_pid13103.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Abort
%
This is the latest JCC from SVN, with Java JDK 1.6.0_07 on CentOS
5, Python 2.4.3.
Bill
_______________________________________________
pylucene-dev mailing list
pylucene-dev@osafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev
_______________________________________________
pylucene-dev mailing list
pylucene-dev@osafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev
_______________________________________________
pylucene-dev mailing list
pylucene-dev@osafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev