Nichts geht mehr seit Update

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.

Nichts geht mehr seit Update

Beitragvon zottel » Fr Jan 18, 2013 10:38 am

Hallo,

seit ich vorhin auch 9035 geupdatet habe, geht überhaupt nichts mehr.

Erst hatte ich lauter "Too many open files" im Log (gestern noch kein Problem). Also habe ich die entsprechenden ulimits für User yacy hochgesetzt.

Dann ließ sich yacy wieder starten, aber wenn ich auf die Admin-Konsole ging, schien das CSS-Stylesheet zu fehlen, und alle paar Sekunden ging ein JS-Dialog mit der Meldung "no rss file found" auf, so dass das ganze unbenutzbar war.

Also startete ich yacy mehrfach neu. Meistens ging das auch, aber das Problem mit dem "no rss file found" und dem fehlenden Stylesheet war immer da.

Beim vorletzten Versuch bekam ich, schon bevor sich meine Node zu anderen Nodes verband, große Mengen von OutOfMemory-Fehlern im Log, dann nichts mehr. Der Java-Prozess lief noch, tat aber nichts mehr.

Beim nächsten Restart ging es unerklärlicherweise dann wieder. Jetzt tauscht yacy fleißig Daten mit anderen Nodes aus, antwortet aber nicht mehr auf http-Requests im Browser.

Was ist da los?
zottel
 
Beiträge: 51
Registriert: Mi Jan 16, 2013 3:04 pm

Re: Nichts geht mehr seit Update

Beitragvon zottel » Fr Jan 18, 2013 11:02 am

Öhm ... Ich musste feststellen, dass yacy plötzlich nicht mehr auf dem eigentlich konfigurierten Port 17717 lief, sodern auf dem Default 8090.

Dort sah jetzt alles aus wie gewohnt, aber ich konnte mich mit meinem Admin-Passwort nicht mehr anmelden.

Tut mir leid, das geht wirklich gar nicht.

Ich kann auf einem Server keine Software betreiben, die mal eben eigenmächtig den Port ändert, auf dem sie lauschen will, und das konfigurierte Admin-Passwort nicht mehr akzeptiert.

Mag ja sein, dass durch irgendwelche Probleme mal die Config flöten geht, speziell wenn sie in einer Datenbank steht und OutOfMemory Errors auftreten. Aber dann darf die Software nicht mehr starten. Sich einfach auf irgendwelche Defaults zurückzusetzen ist absolut inakzeptabel.

Meine Node ist erst einmal gestoppt. Wenn mir jemand plausibel darlegen kann, warum das so war (ich helfe, falls nötig, gern mit Logs), und dass das nach einem Fix nicht mehr passieren kann, setze ich sie vielleicht wieder in Betrieb.
zottel
 
Beiträge: 51
Registriert: Mi Jan 16, 2013 3:04 pm

Re: Nichts geht mehr seit Update

Beitragvon Orbiter » Fr Jan 18, 2013 11:32 am

wie hast du denn das update gemacht?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Nichts geht mehr seit Update

Beitragvon zottel » Mo Jan 21, 2013 8:40 am

Mit aptitude (ist ein Debian-Squeeze-Server, und ich nutze das Debian-Paket).

Die Speicher-Situation ist recht knapp, 1 GB RAM ist vorhanden, und diverse Websites laufen mit einem Apache auf dem System, die allerdings bis auf eine alle praktisch keinen Traffic haben.

Ich hatte yacy einen initialen Heap von 256 MB und einen maximalen von 400 MB zugebilligt. Der tatsächliche Speicherverbrauch lag weit darüber (ca. 1 GB ingesamt inkl. virtuellem Speicher), was wohl an Solr liegt, habe ich irgendwo gelesen?

EDIT: Wo ich jetzt so überlege, kann sein, dass ich den Heap irgendwann auf 256MB begrenzt hatte. Kann ich jetzt aber nichtmehr sicher sagen.

Mein erstes Update via aptitude lief problemlos, nach dem zweiten passierten oben geschilderte Probleme.

Zunächst lief die Node ja auch nach dem Update noch auf Port 17717, bis nach einem erneuten Startversuch im log eine große Anzahl OutOfMemory-Errors auftraten.

Übrigens, ich hatte vorher irgendwann einmal festgestellt, dass der Inhalt der yacy.conf nicht meinen Einstellungen entsprach (auf jeden Fall in Bezug auf die Heap-Größe, und ich glaube auch in Bezug auf die Portnummer, aber ich bin mir nicht mehr sicher, ob ich diesen Wert je nachgesehen habe). Ich war deshalb davon ausgegangen, dass die übers Web-Interface vorgenommenen Einstellungen primär in der Datenbank gesichert werden und conf-Datei keine Rolle mehr spielt, wenn einmal die entsprechenden Tabellen in der Datenbank angelegt wurden.

Meine Theorie ist deshalb:

Irgendeine Änderung im Update hat dazu geführt, dass meine (natürlich recht knappen) Speichereinstellungen nicht mehr ausreichen, um die Node korrekt zu betreiben. Bei einem OutOfMemory-Absturz wurden dann die DB-Tabellen mit der Konfiguration zerstört, was dazu führte, dass die yacy.conf neu eingelesen wurde, die aber meine Konfigurationsänderungen nicht enthielt. (Oder nur zum Teil, denn z.B. der Nodename zottel war erhalten geblieben.)

Das kann natürlich kompletter Blödsinn sein, ich habe ja noch keine Ahnung von den internen Abläufen in yacy.
zottel
 
Beiträge: 51
Registriert: Mi Jan 16, 2013 3:04 pm

Re: Nichts geht mehr seit Update

Beitragvon zottel » Mo Jan 21, 2013 10:01 am

Ich hab jetzt eben nochmal probiert, die Node mit den 600M Default-Heap laufen zu lassen. Das geht zumindest auf diesem Server leider nicht.

Der schon installierte Friendica-Server kommuniziert ständig mit anderen Servern und gibt z.T. recht große Last auf den mysqld. Eine zeitlang lief es ganz gut, aber dann musste ich yacy doch abschießen, weil die Load bei plötzlicher höherer Last auf dem Friendica-Server letztlich auf über 45 angewachsen war. X-)

Mal sehen, ich werde noch ein wenig experimentieren

Was würdet Ihr für den minimalen Java-Heap halten, mit dem yacy noch stabil läuft?

EDIT: Ich hatte es jetzt eine Weile mit 256M laufen, inkl. Proxy-Nutzung. Das lief eine Weile ganz gut, dann war ich jetzt ca. 1h lang in Besprechung, und jetzt läuft yacy zwar grundsätzlich noch, antwortet aber nicht mehr auf dem Web-Interface.

Ein paar Auszüge aus dem Log:

Code: Alles auswählen
I 2013/01/21 12:04:07 INDEX-TRANSFER-DISPATCHER starting new index transmission request to 0G5xHxkh-z__
E 2013/01/21 12:04:07 FILEHANDLER INTERNAL ERROR: java.lang.reflect.InvocationTargetException:null target exception at /usr/share/yacy/htroot/solr/select.class: ; java.awt.graphicsenv='sun.awt.X11GraphicsEnvironment'
W 2013/01/21 12:04:07 StackTrace null
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at net.yacy.server.http.HTTPDFileHandler.invokeServlet(HTTPDFileHandler.java:1421)
        at net.yacy.server.http.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:905)
        at net.yacy.server.http.HTTPDFileHandler.doGet(HTTPDFileHandler.java:250)
        at net.yacy.server.http.HTTPDemon.GET(HTTPDemon.java:403)
        at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at net.yacy.server.serverCore$Session.listen(serverCore.java:767)
        at net.yacy.server.serverCore$Session.run(serverCore.java:658)
Caused by: java.lang.OutOfMemoryError: Java heap space
W 2013/01/21 12:04:07 StackTrace Java heap space
java.lang.OutOfMemoryError: Java heap space
W 2013/01/21 12:04:07 StackTrace Java heap space
java.lang.OutOfMemoryError: Java heap space
[...]
I 2013/01/21 12:04:50 YACY yacyClient.hello thread 'HTTPClient-85.181.214.129' contacted peer at 85.181.214.129:8000, received 8919 bytes, time = 3282 milliseconds
I 2013/01/21 12:04:51 YACY connect: SELF reference 83.133.106.92:17717
I 2013/01/21 12:04:51 YACY yacyClient.hello thread 'HTTPClient-88.130.193.194' contacted peer at 88.130.193.194:8090, received 8572 bytes, time = 4779 milliseconds
I 2013/01/21 12:04:54 MEMORY performed explicit GC, freed 502 KB (requested/available/average: 46590 / 1023 / 21145 KB)
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 7; proper: false
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 8; proper: false
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 9; proper: false
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 10; proper: false
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 11; proper: false
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 12; proper: false
I 2013/01/21 12:04:54 MEMORY checkProper: below treshold; tresholdCount: 13; proper: false
[...]
W 2013/01/21 12:05:36 StackTrace Error executing query
java.io.IOException: Error executing query
        at net.yacy.cora.federate.solr.connector.SolrServerConnector.getById(SolrServerConnector.java:395)
        at net.yacy.cora.federate.solr.connector.MirrorSolrConnector.getById(MirrorSolrConnector.java:316)
        at net.yacy.search.index.Fulltext.getMetadata(Fulltext.java:291)
        at net.yacy.search.index.Fulltext.getMetadata(Fulltext.java:284)
        at net.yacy.peers.Protocol.transferIndex(Protocol.java:1396)
        at net.yacy.peers.Transmission$Chunk.transmit(Transmission.java:241)
        at net.yacy.peers.Dispatcher.transferDocumentIndex(Dispatcher.java:406)
        at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at net.yacy.kelondro.workflow.InstantBlockingThread.job(InstantBlockingThread.java:96)
        at net.yacy.kelondro.workflow.AbstractBlockingThread.run(AbstractBlockingThread.java:78)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Caused by: java.io.IOException: Error executing query
        at net.yacy.cora.federate.solr.connector.EmbeddedSolrConnector.query(EmbeddedSolrConnector.java:206)
        at net.yacy.cora.federate.solr.connector.SolrServerConnector.getById(SolrServerConnector.java:390)
        ... 17 more
Caused by: java.lang.OutOfMemoryError: Java heap space
[...]
W 2013/01/21 12:06:11 BusyThread Thread 'net.yacy.search.Switchboard.dhtTransferJob' runs short memory cycle. Free mem: 315 KB, needed: 12288 KB
E 2013/01/21 12:06:11 UNCAUGHT-EXCEPTION Thread PublishSeed_anona_2: Java heap space
java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space
W 2013/01/21 12:06:11 StackTrace Java heap space
java.lang.OutOfMemoryError: Java heap space
I 2013/01/21 12:06:11 ReferenceContainerCache creating rwi heap dump 'text.index.20130121110607136.blob', 15 rwi's
E 2013/01/21 12:06:14 UNCAUGHT-EXCEPTION Thread httpd:17717: Java heap space
java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space
W 2013/01/21 12:06:14 StackTrace Java heap space
java.lang.OutOfMemoryError: Java heap space
[...]
W 2013/01/21 12:07:19 BusyThread Thread 'net.yacy.search.Switchboard.dhtTransferJob' runs short memory cycle. Free mem: 1085 KB, needed: 12288 KB
W 2013/01/21 12:07:20 BusyThread Thread 'net.yacy.crawler.data.CrawlQueues.remoteCrawlLoaderJob' runs short memory cycle. Free mem: 1081 KB, needed: 12288 KB
W 2013/01/21 12:07:28 BusyThread Thread 'net.yacy.search.Switchboard.surrogateProcess' runs short memory cycle. Free mem: 1075 KB, needed: 12288 KB
W 2013/01/21 12:07:35 BusyThread Thread 'net.yacy.crawler.data.CrawlQueues.remoteCrawlLoaderJob' runs short memory cycle. Free mem: 1069 KB, needed: 12288 KB


Eine ganze Menge ähnlicher Meldungen habe ich ausgelassen, zwischendurch aber imemr wieder Meldungen über erfolgreiches Index transfers etc. (die machen eigentlich den Hauptinhalt des Logs aus, die Fehler sind quasi sporadisch einmal pro Minute oder so).
zottel
 
Beiträge: 51
Registriert: Mi Jan 16, 2013 3:04 pm

Re: Nichts geht mehr seit Update

Beitragvon zottel » Mi Jan 23, 2013 12:35 pm

Ich habe noch ein bisschen rumgesucht und getestet.

Mein Problem scheint weitgehend diesem hier zu entsprechen: http://bugs.yacy.net/view.php?id=83

Dort habe ich dann das hier gefunden: viewtopic.php?f=5&t=3411&p=23550#p23550 und daraufhin "Use Standard Memory Strategy" unter /PerformanceMemory_p.html deaktiviert.

Das führt immerhin dazu, dass die Node gefühlt wesentlich länger durchhält (ca. 2-3h statt ca. 1h), bevor das Web-Interface nicht mehr ansprechbar ist, vor allem ist sie in der Lage, des öfteren bei knapp werdendem Speicher wieder genug freizugeben, dass sie weiterlaufen kann. Die Speicherkurve geht aber kontinuierlich nach oben, und irgendwann geht das dann offenbar nicht mehr.

Mein Index ist mit ca. 1,9 Millionen Wörtern vielleicht auch etwas groß für 256M Heap Limit? Ca. 900.000 davon stammen von eigenen Crawls, der Rest wurde von anderen Peers auf meine Node verteilt. Und wenn ich das richtig verstanden habe, gibt es ja keine Möglichkeit, die Index-Größe zu begrenzen, oder?

Vmtl. hat das insofern auch nichts mit dem Update zu tun, sondern der index wurde schlicht immer größer und dadurch die Speichersitutaion immer knapper.

Hat jemand noch eine Idee, was ich noch probieren könnte? Gibt es irgendetwas, was ich tun könnte, um bei der Fehlersuche zu helfen?
zottel
 
Beiträge: 51
Registriert: Mi Jan 16, 2013 3:04 pm

Re: Nichts geht mehr seit Update

Beitragvon Orbiter » Mo Feb 04, 2013 8:18 pm

wenn dein Rechner nach Ausschöpfung der 600mb Heap für YaCy nicht mehr genug Speicher hat, dann tendiert das eingebettete Solr dazu eine OutOfMemoryException zu werfen weil die mit NIO arbeiten und das sich den Speicher 'ausserhalb' des Heaps besorgt, und dort aufgrund der großzügigen Zuweisung an YaCy nicht mehr genügend ist.

Wir sind von dem Effekt auch noch immer überrascht und müssen noch mehr Erfahrung sammeln. Ich empfehle hier mal YaCy wesentlich weniger Speicher zuzuweisen! Vielleicht müssen wir das auch mal in Zukunft per Standard so machen.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste