Spiel eröffnen hängt, vermutlich wegen UPnP-Unerreichbarkeit

Bug #703662 reported by Trebxson on 2011-01-16
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Return To The Roots
Status tracked in S25client
S25client
Fix Committed
Medium
Unassigned

Bug Description

Das Öffnen eines Netzwerkspiels hängt einige Sekunden. Es hängt nach dem Auswählen einer Karte.

In der Debugausgabe erscheint:

Automatisches Erstellen des Portforwardings mit UPnP fehlgeschlagen
Fehler: Der Vorgang wurde erfolgreich beendet.

Verbinde mit 127.0.0.1:3665
Verbindung erfolgreich hergestellt mit localhost:3665

Vermutlich kann keine Verbindung zum Router hergestellt werden um den Port zu öffnen (da diese Funktion deaktiviert ist).

Evtl. Lösungsvorschläge: Timeout für UPnP-Anfragen verringern (< 2 Sek) oder UPnP-Option hinzufügen welche das Feature aktiviert oder deaktiviert.

r6971

NastX (jtrampe) wrote :

Ich denke, dass die UPnP-Erreichbarkeit damit nichts zu tun hat - wie aus den Logs zu schließen ist, ist der Vorgang ja schon abgeschlossen doer nicht? Ich vermute, dass das Hosten an sich das eigentliche Problem ist und wir werden bestimmt auf dem Weg zu 0.8 mit hoffentlich vielen Geschwindigkeitsverbesserungen aufwarten (=

Wenn du allerdings schon Lösungsvorschläge programmiert hast kannst du die hier gerne als Patch einreichen. Flosoft wird diese dann einpflegen.

Ich file den Bug mal unter Spiel eröffnen hängt. Denn ich denke wirklich dass da noch mehr im Argen ist.

Changed in s25rttr:
importance: Undecided → Medium
status: New → Confirmed
Trebxson (trebxson) wrote :

Das ist sehr gut möglich, dass UPnP keine Schuld trägt. Ich sehe das Debugfenster leider erst wenn die Wartezeit vorüber ist.

Patch? Naja, gerne wenn ich irgendwann mal durch sehe, aber ich habe das Spiel selbst erst vor ein paar Tagen gefunden ^^ - und war sichtlich erstaunt was hier auf die Beine gestellt wurde. Daher auch meine Bemühungen etwas als Reporter zu dienen, sofern es etwas nützt.

Gibt es dennoch Anhaltspunkte, Logmöglichkeiten oder ähnliches damit ich den Fehler einkreisen kann und somit beim Suchen etwas behilflich sein kann?

Trebxson (trebxson) wrote :

Es bot sich mir nun die Gelegenheit UPnP auf dem Router funktionsfähig zu aktivieren.

UPnP scheint nicht die einzige Last zu sein. Aber es ist definitiv die Hauptlast.

Wartezeiten:

   * 10-20 Sekunden Spielstart ohne UPnP, 5-10 Sekunden Spielstart mit UPnP
   * 20-25 Sekunden Spielende ohne UPnP, 1-3 Sekunden Spielstart mit UPnP

Der Port konnte mit UPnP erfolgreich ein- und auch wieder ausgetragen werden.

Jedoch aus verschiedenen Sicherheitsgründen soll UPnP an dem Router nicht aktiviert werden.

Demnach benötigt das Spiel eine Unterstützung für Nicht-UPnP-Fähige Router (aus welchem Grund auch immer).

Es wurde auch geprüft ob der Windows-Dienst SSDP-Suchdienst (Aktiviert die Ermittlung von UPnP-Geräten auf Heimnetzwerken.) etwas damit zu tun hat. Dem ist nicht so. D.h. es macht kein Unterschied ob dieser gestartet ist oder nicht.

Eine mögliche Lösung:

Die Senkung des Timeouts für die Erreichbarkeit der UPnP-Servicestelle (Router). Sollte der Router UPnP anbieten so sollte es keine Sekunde dauern bis er erfolgreich antwortet.

Eine zweite mögliche Lösung:

Im Eigentlichen brauch das Spiel gar nicht auf die Rückantwort des Routers zu warten (wenn es das Protokoll nicht erfordert, ich habe hier nicht genug Kenntnisse).
Scheitert die Porteröffnung ist es das gleiche Ergebnis als würde das Spiel wegen der Nichtantwort des Routers in einem Timeout rennen.

Eigentlich wartet die UPNP-Bibliothek maximal 2sekunden, bevor sie eine
Nichterreichbarkeit signalisiert - länger sollte das eigentlich also
maximal nicht dauern.

Trebxson (trebxson) wrote :

Vlt. scheitert vorne weg etwas bis die Bibliothek/dessen Funktion überhaupt angesprochen wird? Die Meldung kommt übrigens auch erst nach der Wartezeit.

Trebxson (trebxson) wrote :

Evtl. könnte ich dir beim Code/Testen etwas helfen. Compiler hätte ich da. Ich habe bisher jedoch noch nicht den Code zu Rttrr gefunden und weiß auch gar nicht ob diese Form der Unterstützung überhaupt gewünscht ist.

FloSoft (flosoft) wrote :

hi klar kannst du das gerne auch testen. Der Code ist oben über
launchpad verfügbar (Oben auf "Code" klicken)

Trebxson (trebxson) wrote :

Alles klar. Code dank MSVC-Anleitung gefunden. Dauert nun etwas. Ich melde mich dann direkt hier.

Wenn du in den Chat kommst, können wir dir auch helfen den Kram
kompilierbar zu machen.
Der einfachste Weg den Code zu bekommen, wäre "bzr branch lp:s25rttr"
dazu benötigt man bazaar.

Spooky (cpp-ema9o-9ei) wrote :

Um auch hier meinen Senf aus dem Forum zu dokumentieren ( http://www.siedler25.org/index.php?com=forum&mod=forum&action=thread&id=937 ):

Wartezeit bei erster Erstellung: 50 Sekunden
Wartezeit bei Zurück: 125 Sekunden
Wartezeit bei zweiter Errstellung: ~120 Sekunden

Console Output bei erster Erstellung:
-------------------------------------------------------------
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
Automatisches Erstellen des Portforwardings mit UPnP fehlgeschlagen
Fehler: The operation completed successfully.

Verbinde mit 127.0.0.1:3665
Verbindung erfolgreich hergestellt mit localhost:3665
-------------------------------------------------------------

Console Output bei Zurück:

-------------------------------------------------------------
Socket error: connect, 0
Socket error: connect, 0
Socket error: connect, 0
server state changed to stop
client state changed to stop
Socket error: connect, 0
Socket error: connect, 0
-------------------------------------------------------------

Spooky (cpp-ema9o-9ei) wrote :

Vergessen zu erwähnen: das ist mit der aktuellen Nightly r7769. In der aktuellen Stable 0.7.2 passiert dies nicht.

problem besteht auch bei der rev7769 weiterhin.
--
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!
Jetzt informieren: http://www.gmx.net/de/go/freephone

FloSoft (flosoft) on 2012-07-15
tags: added: rev6971 rev7769
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers