[gelöst] Longpoll nach 1024 Zeilen restarteb

Begonnen von MichaelT, 06 Februar 2016, 09:14:12

Vorheriges Thema - Nächstes Thema

MichaelT

Hallo setstate,

bei mir stellt es sich nach der letzten Änderung so dar, dass anscheinend nach dem erst Eintreten
currLine = lines.length;
ftui.toast("Lines: "+currLine);
if (currLine>1024){
  ftui.states.longPollRestart=true;
  longPoll(room)
}


alle 10-15 Sekunden
Toasts:
  Disconnected
  retry to connect in 10 sec
  longpoll started

kommt.

Hast Du eine Idee oder ist das normal?
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

setstate

Das klingt nicht gut. Dann wird longPoll mehrfach gestartet und eine Seesion davon wird abgebrochen und startet dann neu. Das wird dann zu einer Endlosschleife.
Wenn das durch Refresh/Cache löschen bei dir nicht besser wird, musst du die u.g. Zeilen erst einmal wieder auskommentieren.
Ich habe extra gestern bei mir getestet und es für okay empfunden. Kann man noch was zur genauen Herleitung sagen? Machst du noch spezielle Sachen, bevor das Problem auftaucht?

MichaelT

Hallo,

Refresh löst es dahingehend, dass es wieder einmalig 1024 Zeilen dauert und dann erneut auftritt.

Nach 1024 Zeilen kommt im debuglog:
2016-02-06 10:08:16 / DG_SPS / HZ_Rueck / 37.9
VM2007:43 label value 37.9 substitution
fhem-tablet-ui.js:69 update done for device:DG_SPS parameter:HZ_Rueck
fhem-tablet-ui.js:166 Longpoll started
fhem-tablet-ui.js:166 Error while longpoll: error:
fhem-tablet-ui.js:474 2016-02-06 10:08:17 / DG_SPS / pAct / 688


Anscheinend kommt kein "errorThrown" an dieser Stelle.
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

setstate

Mmmm? Fehler Ursache wäre schon interessant und hilfreich! Vllt. braucht das Abort bei dir länger und man müsste etwas warten bis zum Neustart. Dann verliert man aber einige Nachrichten.

MichaelT

kann ich denn feststellen, ob "longPollRequest.abort();" beendet ist?
Oder kann ich nach abort testen ob es zu fehlern kam?
Ich habe mal nach abort longPollRequest.statusText ausgegeben - dort steht auch nur "error" drin  :(
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

MichaelT

Ich glaube das Problem ist, dass an der Stelle ">1024" gleich der lonpoll() aufgerufen wird.
Im longpoll kommt dann der abort und es wird neu gestartet - aber der alte request landet ja ??? wegen dem abort ???  beim dem ajax-Aufruf im fail und startet auch den longpoll nach 10 Sekunden neu.

---- Glaub ich ---  Kenn mich nicht wirklich aus!!!
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

MichaelT

So hab ich das jetzt bei mir am laufen (>50 wegen Testen):


......
                    currLine = lines.length;
                    ftui.toast("Lines: "+currLine);
                    if (currLine>50){
                        ftui.states.longPollRestart=true;
                        //longPoll(room);
                        longPollRequest.abort();

                    }
                }
            }, false);
            return xhr;
            }
    })
    .done ( function( data ) {
        if (!ftui.states.longPollRestart){
            ftui.log(1,"Disconnected from FHEM - poll done - "+data);
            ftui.restartLongPoll();
        }
    })
    .fail (function(jqXHR, textStatus, errorThrown) {
        if(!ftui.states.longPollRestart){
            ftui.log(1,"Error while longpoll: " + textStatus + ": " + errorThrown.name +":"+longPollRequest.statusText);
            ftui.restartLongPoll();
        }
        else {
        longPoll();}
    });


Schau bitte mal drüber ob das so überhaupt richtig ist!

Danke für die Hilfe

Gruß
Michael
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

setstate

mmm, ich kann nicht testen die nächsten Stunden, aber sieht nicht falsch aus. Funktioniert longpoll nach 50 Zeilen dann wieder, ohne Fehlerfdauerschleife?

MichaelT

Ja, bei mir läuft es "unauffällig". Immer schön alle ~50 Zeilen ein restart.

Ich kann nicht beurteilen, ob durch dieses handling Events verloren gehen. Da reicht mein Durchblick nicht.
Aber da der Longpoll recht schnell wieder neu gestartet wird, dürfte nicht viel verloren gehen.

Habe Test mit >1024 in WVC und im Chrome (PC) am laufen.

Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

ambiman

Hallo,

ich habe heute ein FTUI Update durchgeführt und erhalte nach einiger Zeit (ca. 60min) ebenfalls alle 10 Sekunden die TOAST-Fehlermeldungen:

Disconnected from FHEM
Retry to connect in 10 seconds
Longpoll started


Der Code scheint neu hinzugekommen zu sein, in der alten fhem-tablet-ui.js konnte ich diesen nicht lokalisieren.

Viele Grüße,

ambiman

MichaelT

Bei mir ist über Nacht alles durchgelaufen.

@setstate: Ich habe gesehen, du hast eine Änderung gemacht, danke.

Gruß
Michael
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

ambiman

Nach der Änderung sind die Meldung bei mir ebenfalls verschwunden.