我使用最新的pylucene-4.9.0.0遵循了安装指导员
http://bendemott.blogspot.de/2013/11/installing-pylucene-4-451.html for pylucene.
而当我试图lucene.initVM(),我得到以下错误:
alvas@ubi:~$python Python 2.7.6 (default,Mar 22 2014,22:59:56) [GCC 4.8.2] on linux2 Type "help","copyright","credits" or "license" for more information. >>> import lucene >>> lucene.initVM() # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007ffba22808b8,pid=5189,tid=140718811092800 # # JRE version: OpenJDK Runtime Environment (7.0_65-b32) (build 1.7.0_65-b32) # Java VM: OpenJDK 64-Bit Server VM (24.65-b04 mixed mode linux-amd64 compressed oops) # Derivative: IcedTea 2.5.3 # Distribution: Ubuntu 14.04 LTS,package 7u71-2.5.3-0ubuntu0.14.04.1 # Problematic frame: # V [libjvm.so+0x6088b8] jni_RegisterNatives+0x58 # # Failed to write core dump. Core dumps have been disabled. To enable core dumping,try "ulimit -c unlimited" before starting Java again # # An error report file with more information is saved as: # /home/alvas/hs_err_pid5189.log # # If you would like to submit a bug report,please include # instructions on how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Aborted (core dumped)
和文件http://pastebin.com/6B8FyC4Z
我的IceTea配置有问题吗?还是我的JDK?或JRE?
我该如何解决问题?
解决方法
所以我看了你的堆栈跟踪,我不认为这个问题是具体的pyLucene.在堆栈跟踪中,您会看到此错误:
siginfo:si_signo=SIGSEGV: si_errno=0,si_code=1 (SEGV_MAPERR),si_addr=0x0000000000000000
如果您看第一部分,SIGSEGV,这意味着您的系统某处会出现分段错误. SEGV_MAPERR是特定的错误,这意味着OpenJDK正在尝试将内存映射到对象并失败.这可能是由于内存不足,页面文件/虚拟内存不足,地址空间不足,甚至是坏库造成的.为什么它在另一台机器上工作可能是什么.核心转储是非常有用的,所以如果你可以运行
ulimit -c unlimited
这将有助于你看看.这是在VM还是物理机器上?如果没有足够的内存分配给各种Java任务,我在Ubuntu VM中看到随机sigsegv.我在ESXi虚拟机管理程序上看到了这一点,我注意到,最开始的是ESXi开始执行内存交换.我能够通过增加内存,重新启动虚拟机,并确保我的管理程序没有交换内存来解决这个问题.让我知道这是否有帮助.