Ein paar Hinweise von mir. Zunächst bzgl. buster und neuerem Kernel - dazu hatte ich eine mögliche Lösung im github-thread über backports gepostet: klick ABER - und damit zum eigentlichen Problem - mir scheint dass TimeoutException nicht über den Kernel gefixt ist/andere Ursachen hat. Ich habe mit diesem Problem auch zu kämpfen und folgende Erkenntnisse gewonnen: - als ich es auf meinem pi4 laufen hatte (quasi debian12 mit kernel vom Februar) lief es die Tage ohne jeden error. - vm mit debian 12 und schwierigem Kernel (August): TimeoutErrors (dank open3e "ausgehebelt") und alle paar Tage TimeoutException => Abbruch - also eine vm mit buster und älterem Kernel gemacht (Juli22) => keine TimeoutErrors, aber alle paar Stunden/Tage Abbruch durch TimeoutException - dachte der kernel ist vielleicht ZU alt, also eine vm mit arch und neuem kernel gemacht (29.11.23) => keine TimeoutErrors mehr dank neuem Kernel, aber trotzdem alle paar Tage/stunden TimeoutException + Abbruch Mein erster Lösungsansatz war ähnlich @Thomas_MG und ich hatte in Open3e ein weiteres try/except für den TimeoutException eingefügt und dann das Ergebnis: Programm läuft weiter und alle 20 Sekunden kommt ein neuer TimeoutException. Allerdings schien er bei mir auch keine Daten mehr zu übertragen. Eventuell ist relevant bei welchem Datenpunkt der Fehler erstmals auftritt und alle Datenpunkte bis dahin werden weiter übertragen? Ist aber nur geraten ohne jede Ahnung... Also weiter getestet: open3e kann nach Abbruch über TimeoutException neu gestartet werden und funktioniert dann bis zum nächsten wieder einwandfrei - ohne den Can-Adapter vorher einmal down/up zu nehmen. Gleichzeitig habe ich dann noch E2onCAN laufen lassen und das lief ohne Probleme weiter - auch nach TimeoutException von open3e. Ich würde daraus schließen dass das lesen problemlos weiter funktioniert, es aber irgendwie Schwierigkeiten gibt auf den Bus zu schreiben. Das Problem bleibt wenn open3e es direkt nochmals versucht (über try/except), allerdings nicht wenn das Problem einfach neu gestartet wird. Mein workaround ist aktuell ebenfalls über einen automatischen Neustart bei TimeoutException (habe es über einen systemd-service realisiert). Eventuell könnte man das aber direkt über open3e umsetzen? ChatGPT schlägt da eine Lösung über subprocess vor... In jedem Falle wäre zu prüfen ob auch der TimeoutException tatsächlich durch den Kernel verursacht wird und definitiv bereits behoben ist (was meiner Beobachtung mit arch und echt neuem kernel eigentlich widerspricht - denn der TimeoutError ist dort ja bereits erfolgreich behoben) Ideen? Kann ich noch irgendwas testen? Bei github noch einen issue mit explizit TimeoutException erstellen? Danke für eure Unterstützung 😊
... Mehr anzeigen