2014-11-13 10 views
10

Ho seguito le istruzioni di installazione http://bendemott.blogspot.de/2013/11/installing-pylucene-4-451.html per il pylucene utilizzando l'ultimo pylucene-4.9.0.0.Errore PyLucene con IceTea/JDK/JRE

e quando ho provato a al lucene.initVM(), ottengo il seguente errore:

[email protected]:~$ 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) 

e il file http://pastebin.com/6B8FyC4Z

c'è qualcosa di sbagliato con la mia configurazione IceTea? o il mio JDK? o JRE?

Come devo risolvere il problema?

+0

Penso che dovresti passare qualche altra informazione sull'architettura del tuo pc e l'installazione del software. Python è a 64 bit? Java è a 64 bit. Se Python non lo è, temo che possano esserci problemi. Ho letto "mixed mode linux-amd64". –

+0

Hai provato il JDK 8? – duhaime

+0

Finisco per reinstallare su un nuovo server e funziona, ma non c'è ancora indizio su cosa è andato storto = ( – alvas

risposta

1

Quindi ho dato un'occhiata alla traccia dello stack e non penso che il problema fosse specificamente pyLucene. Nella traccia dello stack, si vede questo errore:

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

Se si guarda alla prima parte, SIGSEGV, che significa che hai un errore di segmentazione da qualche parte nel vostro sistema. SEGV_MAPERR è l'errore specifico, il che significa che OpenJDK stava tentando di mappare la memoria su un oggetto e non è riuscito. Questo potrebbe essere stato causato da memoria insufficiente, un file di paging/memoria virtuale non valido, spazio di indirizzi errato o persino una cattiva libreria. Perché ha funzionato su un'altra macchina potrebbe essere qualsiasi cosa. I core dump sono davvero utili, quindi se puoi eseguire

ulimit -c unlimited 

che ti aiuterà a dare qualcosa da guardare. Era in una VM o su una macchina fisica? Ho visto sigsegv casuali nelle mie macchine virtuali Ubuntu se non hanno abbastanza memoria allocata per varie attività Java. L'ho visto specificamente sui miei hypervisor ESXi, e l'ho notato di più quando ESXi ha iniziato a eseguire lo swap della memoria. Sono stato in grado di risolvere questo problema aumentando la memoria, riavviando la VM e assicurandomi che il mio hypervisor non stesse scambiando la memoria. Fammi sapere se questo aiuta. :)

Modifica: ho anche notato che se il provider di archiviazione sottostante ha avuto scarse prestazioni, ciò avrebbe avuto un impatto con i dati di scambio e credo che sia stato anche un impatto con i problemi di sigsegv.