SVN4870 / OutOfMemoryExceptions / Server startet nicht

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Halborinda » So Jun 01, 2008 12:39 pm

Hi!

Ich habe meinen YaCy Server von einem altersschwachen Rechner auf einen neuen kopiert und jetzt geht wohl nicht mehr.

Als erstes war YaCy noch auf der Version 4860. Da erschien beim Start dann folgende Meldung auf der Console (nicht im Log) mit Java Heap von maximal 2048MB:
Code: Alles auswählen
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at de.anomic.kelondro.kelondroRowSet.importRowSet(kelondroRowSet.java:86)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next0(indexContainerHeap.java:249)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:257)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:228)
        at de.anomic.index.indexContainerHeap.initWriteMode(indexContainerHeap.java:120)
        at de.anomic.index.indexRAMRI.<init>(indexRAMRI.java:70)
        at de.anomic.plasma.plasmaWordIndex.<init>(plasmaWordIndex.java:130)
        at de.anomic.plasma.plasmaSwitchboard.<init>(plasmaSwitchboard.java:864)
        at yacy.startup(yacy.java:234)
        at yacy.main(yacy.java:1002)


Dann habe ich einfach Mal auf die Revision 4870 aktuallisiert, seit dem kommt immer folgende Meldung (bei maximalen Java Heap von 2048 MB):
Code: Alles auswählen
Exception in thread "main" java.lang.OutOfMemoryError
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:199)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
        at java.io.DataInputStream.readFully(DataInputStream.java:178)
        at java.io.DataInputStream.readFully(DataInputStream.java:152)
        at de.anomic.kelondro.kelondroRowSet.importRowSet(kelondroRowSet.java:87)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next0(indexContainerHeap.java:249)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:257)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:228)
        at de.anomic.index.indexContainerHeap.initWriteMode(indexContainerHeap.java:120)
        at de.anomic.index.indexRAMRI.<init>(indexRAMRI.java:70)
        at de.anomic.plasma.plasmaWordIndex.<init>(plasmaWordIndex.java:130)
        at de.anomic.plasma.plasmaSwitchboard.<init>(plasmaSwitchboard.java:864)
        at yacy.startup(yacy.java:234)
        at yacy.main(yacy.java:1002)


In den logs findet sich nur:
Code: Alles auswählen
S 2008/06/01 13:27:10 STARTUP Java version: 1.6.0_06
S 2008/06/01 13:27:11 STARTUP Operation system: Linux
S 2008/06/01 13:27:11 STARTUP Application root-path: /yacy
S 2008/06/01 13:27:11 STARTUP Time zone: UTC+0200; UTC+0000 is 1212319631149
S 2008/06/01 13:27:11 STARTUP Maximum file system path length: 65535
I 2008/06/01 13:27:11 PLASMA This is the pro-version of YaCy
I 2008/06/01 13:27:11 PROXY Configuring proxy access logging ...
I 2008/06/01 13:27:11 PROXY Proxy access logging configuration done.
        Filename: DATA/LOG/proxyAccess%u%g.log
        Limit: 1048576
        Count: 20
I 2008/06/01 13:27:12 PLASMA restoring dump for rwi heap 'index.dhtout.heap'


Ich habe auch schon Mal 4096MB versucht, da streikt aber die Java VM:
Code: Alles auswählen
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.


Auch 3072 MB führen nicht weiter, da dann weder ein Log erzeugt wird, noch eine VM dann läuft und auch keinerlei (Fehler-)Ausgaben sich zeigen.

Hängt es vielleicht mit den dreien Problemen zusammen:
* viewtopic.php?f=6&t=1108&p=7497
* viewtopic.php?f=6&t=1136&p=7590
* viewtopic.php?f=6&t=1126&p=7559

P.S.: Ich würde den Server gerne wieder zum Fliegen bringen, sind immerhin 24 GB Daten, die er schon verwaltet.
Halborinda
 
Beiträge: 217
Registriert: Sa Jul 07, 2007 7:58 am

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Halborinda » Mo Jun 02, 2008 11:02 pm

Hm... Dann werde ich wohl einen Peer mit mehr als 10 Millionen RWIs sterben lassen müssen.

Sehr traurig.

(Ich glaube, es waren eher 10 Millionen Links und ein vielfaches an RWIs, aber das kann ich ja jetzt mehr sagen...)
Halborinda
 
Beiträge: 217
Registriert: Sa Jul 07, 2007 7:58 am

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Vega » Di Jun 03, 2008 5:01 am

Guten Morgen - hast Du mal die Collection Index gelöscht, bzw. die config Datei ? Welches OS lief auf dem Alten und nun auf dem neuen peer ?
Beim Kopieren zwischen Windos/Linux hatte ich mal ein ähnliches Problem, ich hatte dann die config Datei gelöscht, dann lief es wieder. Du kannst ja mal alles Löschen ausser den "Data" Ordner und eine neue Yacy-Version drüber kopieren. Deine Java-VM kann nur 2GB am Stück Adressieren, das (wahrscheinlich) nur 32 BIT OS benutzt, das ist völlig normal.

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Halborinda » Di Jun 03, 2008 6:51 am

Guten Morgen,

danke f?r Deine Antwort.

Das alte System lief unter Ubuntu 7.04 32 Bit (Pentium M). Das neue unter Kubuntu 8.04 32 Bit (AMD K2)

Ich glaube, ich hatte Sun Java 1.5 oder vielleicht auch 1.6. Jetzt ist es 1.6.

[NACHTRAG]
Die Version yacy_v0.588_20080603_4875.tar.gz habe ich für den Versuch herunter geladen
[/NACHTRAG]

Ich habe nur Mal DATA kopiert und alles uter DATA/SETTINGS gel?scht:
Code: Alles auswählen
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at de.anomic.kelondro.kelondroRowSet.importRowSet(kelondroRowSet.java:86)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next0(indexContainerHeap.java:249)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:257)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:228)
        at de.anomic.index.indexContainerHeap.initWriteMode(indexContainerHeap.java:120)
        at de.anomic.index.indexRAMRI.<init>(indexRAMRI.java:70)
        at de.anomic.plasma.plasmaWordIndex.<init>(plasmaWordIndex.java:130)
        at de.anomic.plasma.plasmaSwitchboard.<init>(plasmaSwitchboard.java:864)
        at yacy.startup(yacy.java:234)
        at yacy.main(yacy.java:1002)


Auch wenn ich in DATA nur INDEX und PLASMADB behalte, bekomme ich die gleiche Exception.

Im Log finde ich nur:
Code: Alles auswählen
S 2008/06/03 07:43:15 STARTUP Java version: 1.6.0
S 2008/06/03 07:43:16 STARTUP Operation system: Linux
S 2008/06/03 07:43:16 STARTUP Application root-path: /yacy-restore
S 2008/06/03 07:43:16 STARTUP Time zone: UTC+0200; UTC+0000 is 1212471796220
S 2008/06/03 07:43:16 STARTUP Maximum file system path length: 65535
I 2008/06/03 07:43:16 PLASMA This is the pro-version of YaCy
I 2008/06/03 07:43:16 PROXY Configuring proxy access logging ...
I 2008/06/03 07:43:16 PROXY Proxy access logging configuration done.
        Filename: DATA/LOG/proxyAccess%u%g.log
        Limit: 1048576
        Count: 20
I 2008/06/03 07:43:18 PLASMA restoring dump for rwi heap 'index.dhtout.heap'


Wenn ich alle Logs auf fine stelle:
Code: Alles auswählen
S 2008/06/03 07:48:06 STARTUP Java version: 1.6.0
S 2008/06/03 07:48:06 STARTUP Operation system: Linux
S 2008/06/03 07:48:06 STARTUP Application root-path: /yacy-restore
S 2008/06/03 07:48:06 STARTUP Time zone: UTC+0200; UTC+0000 is 1212472086913
S 2008/06/03 07:48:06 STARTUP Maximum file system path length: 65535
I 2008/06/03 07:48:07 PLASMA This is the pro-version of YaCy
I 2008/06/03 07:48:07 PROXY Configuring proxy access logging ...
I 2008/06/03 07:48:07 PROXY Proxy access logging configuration done.
        Filename: DATA/LOG/proxyAccess%u%g.log
        Limit: 1048576
        Count: 20
S 2008/06/03 07:48:07 PROXY loaded yellow-list from file yacy.yellow, 2 entries
S 2008/06/03 07:48:07 PLASMA Remote proxy configuration:
Status: OFF | Host: 192.168.2.2:4239 | Usage: HTTP YACY SSL | No Proxy for: [192.*, 10.*, 127.*, localhost]
S 2008/06/03 07:48:08 PLASMA Plasma DB Path: /yacy-restore/DATA/PLASMADB
S 2008/06/03 07:48:08 PLASMA Index Primary Path: /yacy-restore/DATA/INDEX
S 2008/06/03 07:48:08 PLASMA Index Secondary Path: /yacy-restore/DATA/INDEX
S 2008/06/03 07:48:08 PLASMA Lists Path:      /yacy-restore/DATA/LISTS
S 2008/06/03 07:48:08 PLASMA HTDOCS Path:   /yacy-restore/DATA/HTDOCS
S 2008/06/03 07:48:08 PLASMA Ranking Path:    /yacy-restorey/DATA/RANKING
S 2008/06/03 07:48:08 PLASMA Work Path:    /yacy-restore/DATA/WORK
S 2008/06/03 07:48:08 PLASMA Starting Indexing Management
I 2008/06/03 07:48:09 PLASMA restoring dump for rwi heap 'index.dhtout.heap'


Nchtrag2:
Das Problem ist wohl das Byte-Array:
Code: Alles auswählen
76     public static kelondroRowSet importRowSet(DataInput is, kelondroRow rowdef) throws IOException {
77         byte[] byte2 = new byte[2];
78         byte[] byte4 = new byte[4];
79         is.readFully(byte4); int size = (int) kelondroNaturalOrder.decodeLong(byte4);
80         is.readFully(byte2); //short lastread = (short) kelondroNaturalOrder.decodeLong(byte2);
81         is.readFully(byte2); //short lastwrote = (short) kelondroNaturalOrder.decodeLong(byte2);
82         is.readFully(byte2); //String orderkey = new String(byte2);
83         is.readFully(byte2); short ordercol = (short) kelondroNaturalOrder.decodeLong(byte2);
84         is.readFully(byte2); short orderbound = (short) kelondroNaturalOrder.decodeLong(byte2);
85         assert rowdef.primaryKeyIndex == ordercol;
86         byte[] chunkcache = new byte[size * rowdef.objectsize]; //<---------------- Hier kracht es
87         is.readFully(chunkcache);
88         return new kelondroRowSet(rowdef, size, chunkcache, orderbound);
89     }
Halborinda
 
Beiträge: 217
Registriert: Sa Jul 07, 2007 7:58 am

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon miTreD » Di Jun 03, 2008 8:35 am

Halborinda hat geschrieben:
Code: Alles auswählen
I 2008/06/03 07:43:18 PLASMA restoring dump for rwi heap 'index.dhtout.heap'
Das Ding kannst Du löschen. Befindet sich in DATA/INDEX/freeworld/TEXT/RICACHE. Das sind die Wörter im DHT-Cache, welche beim Shutdown gespeichert werden. Gut, die sind dann weg, aber vielleicht funzt der Peer dann wieder.

Du Deinen Peer auch im Debug-Modus starten: startYACY.sh -d
Dann sehen wir evtl. noch mehr und vielleicht bestätigt sich auch Dein Verdacht mit dem byte array.
miTreD
 
Beiträge: 1241
Registriert: Mi Jun 27, 2007 11:35 am
Wohnort: /home

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Halborinda » Di Jun 03, 2008 7:04 pm

HI!

Also der Debug Mode hat nichts neues Zutage geführt:
Code: Alles auswählen
$ ./startYACY.sh -d
****************** YaCy Web Crawler/Indexer & Search Engine *******************
**** (C) by Michael Peter Christen, usage granted under the GPL Version 2  ****
****   USE AT YOUR OWN RISK! Project home and releases: http://yacy.net/   ****
**  LOG of       YaCy: DATA/LOG/yacy00.log (and yacy<xx>.log)                **
**  STOP         YaCy: execute stopYACY.sh and wait some seconds             **
**  GET HELP for YaCy: see www.yacy-websearch.net/wiki and forum.yacy.de     **
*******************************************************************************
>> YaCy started as daemon process. Administration at http://localhost:8080 <<
[ YaCy v0.588, build 20080603 by Michael Christen / www.yacy.net ]
-------------------------------------------------------------------------------
STARTUP: Trying to load logging configuration from file /yacy-restore/DATA/LOG/yacy.logging
S 2008/06/03 20:01:57 STARTUP Java version: 1.6.0
S 2008/06/03 20:01:58 STARTUP Operation system: Linux
S 2008/06/03 20:01:58 STARTUP Application root-path: /yacy-restore
S 2008/06/03 20:01:58 STARTUP Time zone: UTC+0200; UTC+0000 is 1212516118177
S 2008/06/03 20:01:58 STARTUP Maximum file system path length: 65535
I 2008/06/03 20:01:58 PLASMA This is the pro-version of YaCy
I 2008/06/03 20:01:58 PROXY Configuring proxy access logging ...
I 2008/06/03 20:01:58 PROXY Proxy access logging configuration done.
        Filename: DATA/LOG/proxyAccess%u%g.log
        Limit: 1048576
        Count: 20
S 2008/06/03 20:01:59 PROXY loaded yellow-list from file yacy.yellow, 2 entries
S 2008/06/03 20:01:59 PLASMA Remote proxy configuration:
Status: OFF | Host: 192.168.2.2:4239 | Usage: HTTP YACY SSL | No Proxy for: [192.*, 10.*, 127.*, localhost]
S 2008/06/03 20:01:59 PLASMA Plasma DB Path: /yacy-restore/DATA/PLASMADB
S 2008/06/03 20:01:59 PLASMA Index Primary Path: /yacy-restore/DATA/INDEX
S 2008/06/03 20:01:59 PLASMA Index Secondary Path: /yacy-restore/DATA/INDEX
S 2008/06/03 20:01:59 PLASMA Lists Path:     /yacy-restore/DATA/LISTS
S 2008/06/03 20:01:59 PLASMA HTDOCS Path:    /yacy-restore/DATA/HTDOCS
S 2008/06/03 20:01:59 PLASMA Ranking Path:    /yacy-restore/DATA/RANKING
S 2008/06/03 20:01:59 PLASMA Work Path:    /yacy-restore/DATA/WORK
S 2008/06/03 20:01:59 PLASMA Starting Indexing Management
I 2008/06/03 20:02:00 PLASMA restoring dump for rwi heap 'index.dhtout.heap'
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at de.anomic.kelondro.kelondroRowSet.importRowSet(kelondroRowSet.java:86)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next0(indexContainerHeap.java:249)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:257)
        at de.anomic.index.indexContainerHeap$heapFileEntries.next(indexContainerHeap.java:228)
        at de.anomic.index.indexContainerHeap.initWriteMode(indexContainerHeap.java:120)
        at de.anomic.index.indexRAMRI.<init>(indexRAMRI.java:70)
        at de.anomic.plasma.plasmaWordIndex.<init>(plasmaWordIndex.java:130)
        at de.anomic.plasma.plasmaSwitchboard.<init>(plasmaSwitchboard.java:864)
        at yacy.startup(yacy.java:234)
        at yacy.main(yacy.java:1002)
Halborinda
 
Beiträge: 217
Registriert: Sa Jul 07, 2007 7:58 am

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Halborinda » Di Jun 03, 2008 7:27 pm

Das Löschen hat geholfen. Dank Dir!
Halborinda
 
Beiträge: 217
Registriert: Sa Jul 07, 2007 7:58 am

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon miTreD » Mi Jun 04, 2008 7:39 am

Super :-)

Bleibt trotzdem die Frage, ob man den OOM nicht abfangen und die Datei automatisch plattmachen sollte?
miTreD
 
Beiträge: 1241
Registriert: Mi Jun 27, 2007 11:35 am
Wohnort: /home

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon datengrab » Mi Jun 04, 2008 9:42 am

Es gibt ja derweil ein paar Fälle, wo es beim Start knallen kann und wo es hilft einzelne Dateien zu löschen und es dann nochmal zu probieren. Ich denke auch das man das automatisieren sollte. Durch die folgenden hingen Peers von mir schonmal:
- collection.index
- RICACHE/*
- seed.new.db
datengrab
 
Beiträge: 366
Registriert: Sa Aug 25, 2007 7:22 pm

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Halborinda » Mi Jun 04, 2008 3:56 pm

Nun vielleicht nicht ganz automatisch.
Bzw. als Option.

So dass man einstellen kann, dass diese Dateien ggf. automatisch entfernt werden, aber dies nur eine Option ist.
Aber auch ein Parameter für YaCy geschaffen wird: Räume alle Hilfsdatein ohne zu großen Wert auf.

Grüße
Halborinda
 
Beiträge: 217
Registriert: Sa Jul 07, 2007 7:58 am

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon DanielR » Mi Jun 04, 2008 7:01 pm

Am besten die Fehler verhindern ;)
DanielR
 
Beiträge: 395
Registriert: Di Feb 12, 2008 2:22 pm

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon datengrab » Mi Jun 04, 2008 7:07 pm

DanielR hat geschrieben:Am besten die Fehler verhindern ;)

Das ist nicht immer möglich. Es kann während des Schreibvorgangs zum Stromausfall kommen. Oder wenn yacy mal wieder hängt und mit der Leistung voll am Anschlag ist kann es mitunter Stunden dauern, bis alle Daten beim Shutdown auf die Platte geschrieben sind. Manch einer killt dann (verständlicher weise) yacy, usw....
datengrab
 
Beiträge: 366
Registriert: Sa Aug 25, 2007 7:22 pm

Re: SVN4870 / OutOfMemoryExceptions / Server startet nicht

Beitragvon Copro » So Jun 08, 2008 1:42 am

Das Löschen beider Dateien (sowohl dhtin als auch dhtout) hat bei mir ebenfalls geholfen und zwei Instanzen laufen nun wieder ohne Probleme los ... ;)
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron