Router Problem - bin ich alleine?

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.

Router Problem - bin ich alleine?

Beitragvon sixcooler » Di Jun 15, 2010 2:18 am

Hallo,

hat noch wer Probleme mit 'zombi'-Verbindungen in Routern hinter denen yacy läuft?

Sowohl Fritzboxen als auch z.b. IPCOP zeigen nach Tagen oder Wochen bei mir Verbindungen
die yacy als Client zu anderen Peers aufgebaut hatte aber schon lange nicht mehr benutzt.
Im schlimmsten Fall versagen die Router ihren Dienst und müssen rebootet werden.

Anfangs dachte ich an Bugs der Router: bei denen recherchierte ich im primär Unwillen
bzgl. Umgang mit p2p-Problemem (viele Verbindungen, usw.) und die verbreitete
Meinung das nur eine fehlerhafte Implementierung in der p2p-Programmierung schuld sein könne.
(AVM riet mir doch tatsächlich den Einsatz einer Zeitschaltuhr!)

Also hab ich das innerhalb yacy genauer untersucht - da bei den Routern nix zu löten ist
und es immerhin bei mir mit unterschiedlichen Varianten auftritt:

Ich beobachtete das sich fast ausschliesslich unterminierte client-Verbindungen anhäufen.
Und zwar zu Peers die nun mal nicht mehr an der versuchten IP zu erreichen sind
(Verbindung unterbrochen oder yacy heruntergefahren).
Das DHT-timing scheint mir kaum Einfluss hierbei zu haben - solange die angsprochenen
Peers erreichbar sind.
Eine Häufung scheint mir bei de.anomic.yacy.yacyClient.publishMySeed() aufzutreten.

Nach vielen Experimenten (die noch andauern) bin ich immerhin schon zu weniger
'zombi'-Verbindungen gekommen.
Bevor ich davon commite, habe ich ein paar Fragen:

Bin ich der einzige mit dem Problem?
(mach ja keinen Sinn dann meinen Kram zu verbeiten)

Wieso wird in publishMySeed() mehrfach versucht eine Verbindung herzustellen
und das mit 30sec-Timout?
Wird sicher mal einen Grund (gehabt) haben - oder?
1x und 6sec laufen (bei mir) wunderbar und erzeugen im Fehlerfall nicht gleich 4 'Zombies'

Gibt es einen Grund für die heftige 'Unterstützung' des ConnectionManagers in
de.anomic.http.client.Client?
Zwar hatte ich mal selbst Aufrufe von Client.cleanup() untergebracht, aber nun
wo ich etwas mehr Ahnung von dem hab was der ConManager tut, denke ich das er es besser tut
wenn man ihn nur lässt.

Beste Grüsse, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon Orbiter » Di Jun 15, 2010 10:38 am

hallo sixcooler,

ich teile eigentlich deine Beobachtungen, konnte aber nicht die richtigen Ursachen dafür finden. Da finde ich es ja gut dass du dir das mal genau angeguckt hast. Die 'merkwürdigen' Code-Dinge zur 'Unterstützung' des ConnectionManagers sind sowas wie mein verzweifelter Versuch gewesen, offen stehende Verbindungen schliessen zu können weil offenbar hier angewiesene Time-out Zeiten vom httpc nicht eingehalten werden und diese unendlich lange offen bleiben. Ich habe da ein wenig den Router in verdacht dass der solche Verbindungen künstlich aufrecht erhält, weiss aber nicht genau wie man da an das Problem ran kommt.

Die vielen 'brutalen' peer-Ping Aufmachmethoden stammen aber diesmal nicht von mir aber ich sehe es ähnlich wie du dass man das ändern sollte.

Ich würde hier aber vorschlagen nicht die aktuelle apache http client 3.1 Implementierung weiter abzuändern, sondern es gleich mal 'ordentlich' zu machen. Der apache http client 4 ist ja nun da und ich habe vor einigen Wochen angefangen ein ganz neues Konzept zu überlegen wie man diese YaCy Client Komponente gestalten könnte.

Herausgekommen ist das neue net.yacy.cora Package: cora steht für 'Content Retrieval API' und soll ein von YaCy-Core völlig unabhängiges Modul werden, dass man benutzen kann um YaCy remote abzufragen. Sowas brauch einen http client, und daher ist dies die Komponente die diesen beinhalten sollte. Für YaCy-Core würde man cora als library einbinden, zusammen mit dem apache httpc 4.

Wenn du nun Lust hast kannst du dich da ran machen den apache http client 4 in cora einzubauen - in die Klasse net.yacy.cora.protocol.HttpConnector, bzw ist dort der Ort wo momentan noch der 3er Client benutzt wird.

Wenn der 4er Client dann in cora drin ist kann man schrittweise anfangen die einzelnen YaCy Komponenten auf cora umzustellen, bis keine Verwendung des http 3er mehr da ist.

Bitte beachten dass cora unter LGPL steht, damit man diese Komponente in andere Software besser integrieren kann.

Willst du dich da dran versuchen?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Mi Jun 16, 2010 2:28 am

Interesse hab ich durchaus daran.
Ich will mal versuchen (Zeit für) eine httpc-4 Lösung zu finden.

Was ist bei LGPL zu beachten?
(ausser nix vom nicht-cora-yacy-Teilen anzuziehen?)
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon Orbiter » Mi Jun 16, 2010 9:36 am

ich hab deine Anregung schon mal in SVN 6921 umgesetzt. Mal sehen ob es Probleme gibt. Ich glaube die vielen Retrys gab es weil das Netz während der Indexierung instabil wurde weil die Peers beim indexieren so belastet waren dass sie nicht mehr direkt geantwortet haben. Die Performanceprobleme beim Indexieren sind aber nun eigentlich ganz weg, so dass hier vielleicht keine Instabilitäten mehr ausgelöst werden können.

LGPL: wie du schreibts: nichts von ausserhalb von cora benutzen. Ich habe da schon die wesentlichen Teile für eine Such-API rein gemacht, inklusive RSS Parser für das Opensearch von YaCy. Mit LGPL kann man das dann besser in andere Software integrieren. Alles was wir momentan in YaCy an Libraries integrieren ist entweder in LGPL oder Apache License.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Mo Jul 05, 2010 9:35 pm

Hallo,

ich wollt mich hierzu mal kurz melden - da ja schon viel Zeit seit dem letzten Post vergangen ist.

Das mit HttpClient-4.x ist nach wie vor bei mir im Fokus - bei mir läuft auch schon ein der Cora-HttpConnector mit dem neuen Client.
Das Ganze ist aber wegen Zeitmangel noch arg in den Kinderschuhen...

Cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Di Jul 13, 2010 12:22 am

Ein Anfang ist endlich gemacht mit svn 6965:

genutzt wird HttpClient-4.x bisher nur in yacyClient.publishMySeed() - dieses erschien mir am einfachsten...
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon Copro » Di Jul 13, 2010 6:56 am

Wo in der Fritz!Box sieht man diese noch bestehenden Verbindungen - oder macht es keinen Sinn das jetzt schon zu testen ?
Könnte das hier unter Windows mit der neuen Version ausprobieren wenn das hilft.
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Di Jul 13, 2010 12:48 pm

Bei der Fritzbox ist es leider auch mir nicht gelungen direkt diese fehlerhaft
offenen Verbindungen zu identifizieren.
Ein Hinweis kann sein mit http://fritz.box/html/support.html Statusdaten zu ziehen
und darin nach steigenden ip_dst_cache-Werten zu gucken.
(ich selber benutze http://trac.freetz.org/ - da sieht es ein wenig besser aus)

Zu Testen macht immer Sinn - Nur mein hier beschriebenes Problem ist noch lange
nicht gelöst:
Nur ein kleiner Teil wird nun über HttpClient-4.x abgewickelt.
Ist die Umstellung komplett wird sich zeigen ob es hierbei geholfen hat :-)

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon Orbiter » Mi Jul 21, 2010 12:09 pm

ich verfolge deine Commits mit steigender Begeisterung!

Eine kleine Hintergrundinformation: die Basis für das cora package wurde in einem Telefonat von mir mit Dulcedo geplant. Dabei ging es zunächst darum dass man eine von YaCy externe Library schafft, die YaCy remote abfragen kann. Dieses Package benötigt daher einen http connector und einen xml Parser.

Dieses Package sollte dann auch in anderen Sprachen vorliegen können, damit man die gleichen API-Abfragen auch bsp. von perl aus aufrufen kann. Damit dieses API-Library problemlos in andere Software eingebunden werden kann sollte sie eine LGPL Lizenz haben, das ist der Hintergrund der Lizenzänderung.

Da die Cora Funktionen auch innerhalb von YaCy benötigt werden, wird die (ggf. später externe Library) auch wieder in YaCy eingebunden. Zur Zeit arbeitest du ja da dran und zwar innerhalb des YaCy SVN repositories. Das könnte man aber auch raus ziehen und dann in einem eigenständigen Repository hosten, bsp. über git. Hier ist ein Ort wo ich die für YaCy genutzten git repositories konsolidieren möchte: http://github.com/yacy

Da wäre dann ggf. ein branch (ggf. eine Kopie) deines YaCy Cora Packages, wenn du ggf. Maintainer dieses Packages werden würdest und das als Git Repository zur Verfügung stellst. Ich weiss nicht wie diese Art 'distributed Yacy Packages' ankommt, aber es ist so eine Idee dass ein 'YaCy 2.0' aus Paketen unterschiedlicher YaCy Sub-Projekte bestehen könnte.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Mi Jul 21, 2010 10:55 pm

Hallo,

was meinst Du mit einer Library 'die YaCy remote abfragen kann'?
Nicht einfach als lib Nutzen?

Wo wird Cora noch angezogen?
Was wird dort gebraucht?

Ich hab maximal eine grobe Vorstellung von git - sollte aber kein Problem sein.
Wie funktioniert das mit dem github? erstellst Du dort ein Repository?

Wann soll cora 'auswandern'?

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon Orbiter » Mi Jul 21, 2010 11:06 pm

sixcooler hat geschrieben:was meinst Du mit einer Library 'die YaCy remote abfragen kann'?
Nicht einfach als lib Nutzen?

Wenn du eine Funktion von YaCy in einem anderen Umfeld nutzen willst musst du entweder innerhalb der Programmiersprache java direkt linken oder wenn du eine andere Programmiersprachenumgebung hast dann brauchst du in dieser anderen Programmiersprache eine Library. Beispiel:
- die php library von dulcedo: http://www.yacy-websearch.net/wiki/inde ... yAPIforPHP
- die perl library von Marc: http://ismael.audioattack.de/

In cora wären dann alle Libraries der verschiedenen Sprachen, darunter aber auch Java. Das ganze soll aber dann so eine Abstraktionsebene haben dass man sagt: ok ich will das nun nicht für YaCy nutzen sondern nur für einen Dienst der das gleiche Protokoll wie YaCy implementiert. Das wäre dann bsp. bei Opensearch der Fall. Dann könnte man cora auch nehmen um andere Opensearch-Quellen abzufragen. Das ganze ergibt dann auch ein Modul mit dem man Metasuchmaschinen bauen kann oder ganz andere Interfaces auf GUI-Basis.

Die Idee ist dass YaCy für ein 'YaCy 2.0' in Module zerfallen (und wieder zusammengesetzt) werden kann. Dabei muss man planen wo welche Komponenten hin gehören. Eine Nutzung vom http client wäre also ganz sicher in cora. Daher die Idee den httpc in cora einzubauen und dann das ganze wieder in YaCy zu nutzen.

Das mit dem 'Auswandern' kann noch warten, erst mal muss der Code zur Ruhe kommen und alles wieder funktionieren. Dann muss man sehen wie man die API-Elemente in cora klar beschreibt und die ggf. mit dem mappt was bereits in dulcedos und Marcs library drin ist. Dann ist wohl eine Gelegenheit zum 'Auswandern'
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Do Jul 22, 2010 2:29 am

besten Dank für die Aufklärung um die 2.0-Pläne

aber mal zurück zum Topic:

in svn6983 hab ich eine Begrenzung des dht-out Datenvolumens untegebracht.
Es ist keine wirkliche Bandbreitenbegrenzung - aber ab 512K, die gerade in der Übertragung sind wird nichts mehr 'nachgeschoben'.

Motivation war den aktuellen Verbindungen die möglichkeit zu geben schneller abgearbeitet zu werden
(ohne das sie sich mit weiteren Übetragungen die Bandbreite teilen müssen).

Nun eine Frage an die Fraktion mit >1Mbit upload: knickt der Upload (aus dht-out) schon zu mächtig ein?

Besten Dank, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Router Problem - bin ich alleine?

Beitragvon Lotus » Fr Jul 23, 2010 6:15 am

Dies ist wohl der HTTP-Client Thread:

Ich habe in de.anomic.http.client.ClientGetMethod den alten HTTP-Client erweitert, sodass er bei zu großen Dateien (anhand Head) den Ladevorgang abbricht bevor er lädt. Ich glaube beim aktuellen ist soetwas schon eingebaut. Das sollte nicht aus den Augen verloren werden, damit YaCy wie erwartet funktioniert.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Router Problem - bin ich alleine?

Beitragvon sixcooler » Fr Jul 23, 2010 1:15 pm

evtl sollte man den Thread mal aufteilen :-)

Den Aspekt habe ich aus de.anomic.http.client.Client nach net.yacy.cora.protocol.Client von Anfang an übernommen - aber:

kaum eine nutzung des client setzt dieses 'Limit' - man weiss einfach zu selten wie viel man erwarten sollte
und nicht immer wird im Header auch die contentlength mitgeliefert - zb. bei cgis wissen die Server das selber nicht :-)
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm


Zurück zu Fragen und Antworten

Wer ist online?

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

cron