Aktuelles Nightly - Fehlermeldung in Funktion readClient in RpcServer.cpp?


#1

Hallo,

habe heute auf das aktuelle Nightly Version 0.8.0-2398 unter Raspbian Stretch upgedatet und jetzt erscheint in den Logfiles bei jedem Zugriff auf den RPC-Server folgende Fehlermeldung:

12/05/18 12:00:02.440 RPC Server (Port 2001): Error in file RPC/RpcServer.cpp line 1696 in function void Homegear::Rpc::RpcServer::readClient(std::shared_ptr<Homegear::Rpc::RpcServer::Client>): basic_string::_M_create
12/05/18 12:00:02.479 RPC Server (Port 2001): Error in file RPC/RpcServer.cpp line 1696 in function void Homegear::Rpc::RpcServer::readClient(std::shared_ptr<Homegear::Rpc::RpcServer::Client>): basic_string::_M_create
12/05/18 12:00:02.532 RPC Server (Port 2001): Error in file RPC/RpcServer.cpp line 1696 in function void Homegear::Rpc::RpcServer::readClient(std::shared_ptr<Homegear::Rpc::RpcServer::Client>): basic_string::_M_create
12/05/18 12:00:16.068 RPC Server (Port 2001): Error in file RPC/RpcServer.cpp line 1696 in function void Homegear::Rpc::RpcServer::readClient(std::shared_ptr<Homegear::Rpc::RpcServer::Client>): basic_string::_M_create
12/05/18 12:00:16.104 RPC Server (Port 2001): Error in file RPC/RpcServer.cpp line 1696 in function void Homegear::Rpc::RpcServer::readClient(std::shared_ptr<Homegear::Rpc::RpcServer::Client>): basic_string::_M_create

Hat dazu jemand eine Idee ? Vielen Dank.

Viele Grüße

FiveEights


#2

Hallo @FiveEights,

es hat sich tatsächlich im RPC-Server etwas verändert. Und zwar konnten vorher bei gleichzeitigem Empfang von zwei HTTP-Paketen oder zwei WebSocket-Paketen (bzw. zwei Paketen im Puffer) nicht beide verarbeitet werden. In dem Zuge musste ein bisschen etwas umgestellt werden. Über welches Protokoll bzw. mit welcher Software greifst du auf den RPC-Server zu? Dann kann ich den Fehler hier nachstellen und direkt lösen.

Viele Grüße

Sathya


#3

Hallo,

vielen Dank für die schnelle Rückmeldung !
Ich greife über PHP von einem weiteren Raspi als Client auf den RPC-Server zu.

Ich habe jetzt noch nicht umfassend getestet, aber nach meiner Einschätzung tritt dass Issue immer dann auf, wenn mehrere Anfragen an den Server unmittelbar hintereinander geschickt werden.

Hier ein einfaches PHP Skript als Beispiel:

#!/usr/bin/php
<?php
 require_once("/home/pi/php/homegear_rpc_client.php");
 $host = "Homegear-Server";
 $Client = new \XMLRPC\Client($host, 2001, false);

 $status=$Client->send("getValue",array(3,1,"STATE"));
 $status=$Client->send("getValue",array(4,1,"STATE"));
?>

Ich wollte Dir auch ein Logfile mit einem höheren Debug Level liefern, aber das enthält auch nicht mehr Informationen als die bereits genannte Fehlermeldung.

Bitte melde Dich einfach, wenn Du noch mehr Infos brauchst.

Viele Grüße

FiveEights


#4

Hallo @FiveEights,

da gab es tatsächlich einen Fehler - wobei er nicht notwendigerweise mit deinem zusammenhängt. Magst du mal schauen, ob es jetzt wieder funktioniert?

Viele Grüße

Sathya


#5

Hallo,

ich bin jetzt auf dem Nightly 0.8.0-2508 und erhalte immer noch die gleichen Fehlermeldungen im Logfile. Das hat also leider noch nicht weitergeholfen.

Viele Grüße

Five Eights


#6

Ich habe gerade von 0.7.30 auf 0.7.34 umgestellt und habe ich Errorlog genau das gleiche Problem (mit line 1731). Ist also leider nicht nur im Nightly so.


#7

Hallo,

ich bekomme es bei mir leider - warum auch immer - nicht reproduziert (mit 0.8.0-2508 auf Raspbian Stretch). Könntet ihr mir von so einem fehlschlagenden RPC-Aufruf ein Log auf Loglevel 5 posten? Da werden die Rohpakete geloggt. Wenn ich diese bei mir manuell parsen lasse, sollte ich es reproduzieren können.

Viele Grüße

Sathya


#8

Hallo @sathya,

anbei ein kurzer Logausschnitt von Version 0.7.34 (homegear.log + homegear.err) mit Debuglevel 5. Solltest Du noch was brauchen, melde Dich bitte.

Gruß, Frank

homegear.log.zip (46,8 KB)


#9

Hallo,

und hier ein entsprechender Ausschnitt aus homegear.log für Version 0.8.0-2508.
Ich hoffe, dass alle wesentlichen Infos enthalten sind, sonst melde Dich bitte nochmal.

Viele Grüße

FiveEights

rpc_bug.log (5,3 KB)


#10

Vielen Dank @DasKleingedruckte und @FiveEights! Ich kann das Problem damit tatsächlich reproduzieren und schaue direkt, wo das Problem liegt.


#11

Fehler gefunden: Content-length des Pakets ist um 1 zu klein (darf eigentlich nicht sein, aber Homegear muss damit umgehen können). Dadurch war noch ein Byte im Puffer, welches nicht erfolgreich geparsed werden konnte. Im nächsten Nightly hat Homegear kein Problem mehr damit.

Vielen Dank und viele Grüße!

Sathya


#12

Wann kann man denn mit einem Fix für stable rechnen? Ich hab vorgestern meinen raspberry auf 0.7.35 aktualisiert und seitdem das gleiche Problem. Downgrade scheitert natürlich an der bereits aktualisierten Datenbank. Da brennt deswegen jetzt nicht gerade der Baum, wäre nur interessant zu wissen, wann das in stable ankommen könnte :wink:


#13

Hallo @rbott,

in 0.7.36 ist der Fix enthalten. Testing kompiliert bereits. Wenn da keine Fehler auftreten, wird 0.7.36 in wenigen Tagen stable.

Viele Grüße

Sathya


#14

Hallo @sathya,

vielen Dank für das schnelle Feedback. Dann bin ich mal gespannt :slight_smile:

Grüße, Rudi


#15

Hallo,

ich bin seit ca. einer Woche auf der Version 0.8.0-2519 und seither ist das Issue bei mir nicht mehr aufgetreten. Vielen Dank für den schnellen Fix !

Viele Grüße

FiveEights


#16

Und in der stable 0.7.36 ist es auch behoben. Vielen Dank für die schnelle Lösung.

Gruß,
Frank