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

Reply via email to