IceTea / JDK / JRE的PyLucene错误

时间:2014-11-13 08:53:13

标签: java python lucene pylucene

我使用最新的pylucene-4.9.0.0跟踪安装说明人http://bendemott.blogspot.de/2013/11/installing-pylucene-4-451.html了解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?

我应该如何解决问题?

1 个答案:

答案 0 :(得分:1)

所以我看了你的堆栈跟踪,我不认为这个问题特别是pyLucene。在堆栈跟踪中,您会看到以下错误:

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000000000000

如果你看第一部分,SIGSEGV,这意味着你的系统中某处存在分段错误。 SEGV_MAPERR是特定错误,这意味着OpenJDK正在尝试将内存映射到对象并失败。这可能是由于内存不足,页面文件/虚拟内存不良,地址空间不良甚至是坏库造成的。为什么它在另一台机器上运行可能是任何事情核心转储非常有用,所以如果你可以运行

ulimit -c unlimited

这将有助于您了解一些事情。这是在虚拟机还是物理机器上?我在Ubuntu虚拟机中看到了随机sigsegv,如果他们没有为各种Java任务分配足够的内存。我特意在ESXi管理程序上看到了这一点,我注意到它最多的是ESXi开始执行内存交换。我能够通过增加内存,重新启动VM以及确保我的虚拟机管理程序没有交换内存来解决这个问题。如果有帮助,请告诉我。 :)

编辑:我还注意到,如果底层存储提供商的性能不佳,那会影响交换数据,我觉得这也会对sigsegv问题产生影响。