[vz-users] vzlogger loggt nur im daemon Modus

Matthias Behr mbehr at mcbehr.de
Thu Nov 9 19:51:30 CET 2017


ok. Das Problem habe ich verstanden.

Es handelt sich um eine Racecondition.

Nach dem Auslesen eines Wertes wird der „logging_thread“ einfach hart per „pthread_cancel“ abgebrochen.
Je nach dem, wie schnell der Logging Thread die Daten per curl verschicken konnte, bekommst du die oder eben auch nicht.

In deiner Konfig mit 2 Metern an die gleiche Middleware verschärft sich das noch. Da für das Übermitteln die gleiche Curl-Connection genutzt wird, sind die Logging_Threads defacto serialisiert. Dadurch wird es aber noch wahrscheinlicher, dass der 2. seine Daten nicht mehr übermitteln kann.

Du kannst mal für den 2. eine andere Middleware angeben (z.B. einfach die Groß-/Kleinschreibung beim Hostnamen ändern). Dann werden separate Curl-Sessions genutzt und die Daten werden parallel verschickt.
Das reduziert das Problem.

Wir brauchen aber für den Use-Case einen richtigen Fix. Ist nicht so trivial, weil wir die ganzen Fehlersituationen wie „keine/langsame Verbindung/Fehler" zur Middleware abfangen müssen, damit es nicht zum Hang kommt.

-> Kannst du einen Bug im github einstellen?

> Am 02.11.2017 um 18:21 schrieb Matthias Behr <mbehr at mcbehr.de>:
> 
> ich schaue mir das an (aber erst nächste Woche bin grad im Ausland)
> 
> Mit freundlichen Grüßen / Best Regards
> Matthias 
> 
> Sent from a mobile device. 
> 
>> Am 02.11.2017 um 17:08 schrieb Daniel Lauckner <vz at jahp.de>:
>> 
>> Hallo,
>> 
>> 
>> am Donnerstag, 2. November 2017 um 08:09 hat RaspberryVZ geschrieben:
>>> die Logs habe ich mit höherer verbosity erzeugt als in der beigefügten
>>> config, da kommt nicht mehr dabei raus.
>> 
>> Ich glaube du hast da ne falsche Vorstellung.
>> Natürlich kommt da keine Meldung: "Hier hat einer was vergessen", jede
>> Meldung muss irgendwer programmiert haben. Für Probleme die der
>> Programmierer nicht auf dem Schirm hat gibts natürlich auch keine
>> Logeinträge.
>> Dennoch ist es wichtig ein möglichst hohes Loglevel zu haben um
>> nachverfolgen zu können was gemacht wurde und was _nicht_.
>> 
>>> Wäre toll, wenn das wieder gehen würde. Man könnte ja einen neuen
>>> Parameter einbauen - Transfer zur MW oder nicht.
>> 
>> Könnte man. Ich nicht.
>> Vielleicht kann ich den Fehler ausfindig machen, aber neue Funktionen
>> und Optionen überschreiten meine Fähigkeiten.
>> 
>>> O.k., habe eben nochmal ein paarmal per Kommandozeile gestartet - bei 
>>> drei Aufrufen hat er EINMAL EINEN der beiden Werte geschrieben.
>> 
>> Das ja mal interessant.
>> Sieht fast so aus als würden die Daten gesendet wenn CURL (zufällig?)
>> genug Zeit hat. Vzlogger wird nicht beendet wenn CURL noch arbeitet,
>> aber wenn er noch nicht richtig angefangen hat...
>> 
>> Damit schwinden aber die Chancen das ich was ausrichten kann.
>> 
>> 
>> mfg Daniel
>> 
> 

Gruß

Matthias



More information about the volkszaehler-users mailing list