Random Server Restarts nach Update von 1.2.0 auf 1.3.0

Hi, hab gestern meine 3 Repetier Server die auf Raspis laufen aktualisiert. Und 2 davon gestern/heute verwendet und bei beiden hatte ich zufällige Neustarts des Dienstes so wie es aussieht. Auf dem einen nach ca 20min ... nochmal gestartet danach lief der selbe druck nach ca 40min durch (Repetier-Firmware). Und dann hatte ich gestern Abend auf dem anderen Server/Drucker (Voron Klipper) noch einen 10h Druck gestartet, der ist nach ca. 6h ausgestiegen. Vorher lief alles ohne Probleme. Es wurde nichts außer der Repetier-Server Version geändert. Ausgabe ist bei beiden im syslog gleich:

Mar 12 03:43:30 RepetierServer systemd[1]: Starting Time & Date Service...
Mar 12 03:43:30 RepetierServer dbus-daemon[461]: [system] Successfully activated service 'org.freedesktop.timedate1'
Mar 12 03:43:30 RepetierServer systemd[1]: Started Time & Date Service.
Mar 12 03:43:47 RepetierServer systemd[1]: RepetierServer.service: Main process exited, code=killed, status=6/ABRT
Mar 12 03:43:47 RepetierServer systemd[1]: RepetierServer.service: Failed with result 'signal'.
Mar 12 03:43:47 RepetierServer systemd[1]: RepetierServer.service: Service has no hold-off time (RestartSec=0), scheduling restart.
Mar 12 03:43:47 RepetierServer systemd[1]: RepetierServer.service: Scheduled restart job, restart counter is at 1.
Mar 12 03:43:47 RepetierServer systemd[1]: Stopped Repetier-Server 3D Printer Server.
Mar 12 03:43:47 RepetierServer systemd[1]: Starting Repetier-Server 3D Printer Server...
Mar 12 03:43:47 RepetierServer systemd[1]: Started Repetier-Server 3D Printer Server.
Mar 12 03:46:00 RepetierServer dhcpcd[728]: wlan0: Router Advertisement from fe80::7642:7fff:fe40:eade
Mar 12 03:48:13 RepetierServer systemd[1]: systemd-timedated.service: Succeeded.
Mar 12 03:48:14 RepetierServer dbus-daemon[461]: [system] Activating via systemd: service name='org.freedesktop.timedate1' unit='dbus-org.freedesktop.timedate1.service' requested by ':1.758' (uid=0 pid=7016 comm="timedatectl ")

Gibt es noch irgend ein Logfile das aufschlussreicher für die Ursache sein könnte?

Comments

  • Ungewöhnlich das du das bei beiden bekommst, wo das sonst noch keiner für 1.3 gemeldet hat. Eigentlich läuft die sehr gut. Hast du irgend etwas ungewöhliches im server Konfiguriert? Sieht ja erst mal so aus wie ein absturz des Servers aufgrund eines kritischen Fehlers. Nur warum leidest du so da drunter.

    zuerst würde ich zum Zeitpunkt in die server.log nachsehen. Eventuell gibt es da noch einen Hinweis das er irgend etwas versucht hat, dann wüste man genauer wo man suchen müsste.

    Ansonsten wäre ich sehr dankbar wenn du wie in
    https://www.repetier-server.de/faq/debugging-crashes-hangs-on-linux/
    beschrieben ein komplettes backtrace erzeugen könntest. Am besten bei dem pi der das häufiger macht, dann must du nicht so lange warten. Mit dem Backtrace weiß ich ziemlich genau wo er abstürzt und sollte es schnell eingrenzen können.
  • So, hab fleißig Drucke laufen lassen und eben ist es wieder aufgetreten... Scheint mir mit MQTT zusammenzuhängen.

    Hier noch der entsprechende auszug von gestern aus dem server.log:

    2022-03-12 03:43:47: MQTT error [-12]: No more messages can be buffered
    2022-03-12 03:43:47: MQTT error [-12]: No more messages can be buffered
    2022-03-12 03:43:47: MQTT error [-12]: No more messages can be buffered
    2022-03-12 03:43:47: MQTT error [-12]: No more messages can be buffered
    2022-03-12 03:43:47: Start logging...
    2022-03-12 03:43:47: Imported external command Shutdown Server
    2022-03-12 03:43:47: Imported external command Reboot Server
    2022-03-12 03:43:47: Imported allowed execute command shutdown
    2022-03-12 03:43:47: Imported allowed execute command reboot
    2022-03-12 03:43:47: Webdirectory: /usr/local/Repetier-Server/www/
    2022-03-12 03:43:47: Storage directory: /var/lib/Repetier-Server/
    2022-03-12 03:43:47: Configuration file: /usr/local/Repetier-Server/etc/RepetierServer.xml
    2022-03-12 03:43:47: Directory for temporary files: /tmp/
    2022-03-12 03:43:47: Reading firmware data ...
    2022-03-12 03:43:47: Starting Network ...
    2022-03-12 03:43:47: Active features:4095
    2022-03-12 03:43:47: Reading printer configurations ...
    2022-03-12 03:43:47: Reading printer config /var/lib/Repetier-Server/configs/V21419.xml
    2022-03-12 03:43:47: Set webcam url:http://192.168.7.227:9000/?action=stream
    2022-03-12 03:43:47: Starting printjob manager thread for V21419
    2022-03-12 03:43:48: Starting printer threads ...
    2022-03-12 03:43:48: Starting printer thread for V2.1419
    2022-03-12 03:43:49: Connection started: V2.1419
    2022-03-12 03:43:50: Starting work dispatcher subsystem ...
    2022-03-12 03:43:50: Starting user database ...
    2022-03-12 03:43:50: Importing projects ...
    2022-03-12 03:43:50: Importing wifi connections from /var/lib/Repetier-Server/database/repetier-network.xml
    2022-03-12 03:43:50: Importing wifi connections from /var/lib/Repetier-Server/database/repetier-network-stored.xml
    2022-03-12 03:43:50: Initializing LUA ...
    2022-03-12 03:43:50: Register LUA cloud services
    2022-03-12 03:43:50: add G-Code-Renderer
    2022-03-12 03:43:50: Starting wifi watcher ...
    2022-03-12 03:43:50: LUA initalization finished.
    2022-03-12 03:43:50: Work dispatcher thread started.
    2022-03-12 03:43:50: Internal work dispatcher thread started.
    2022-03-12 03:43:50: Starting gpio handler ...
    2022-03-12 03:43:50: Setting up MQTT Client ... 
    2022-03-12 03:43:50: Starting web server ... 
    2022-03-12 03:43:50: Webserver started.
    2022-03-12 03:43:50: Websocket opened
    2022-03-12 03:43:51: MQTT connection started  cause: connect onSuccess called 


    und von eben grade aus gdb:

    Thread 830 "CronJobs" received signal SIGABRT, Aborted.
    [Switching to LWP 14318]
    0x00874d24 in __restore_sigs ()

    #0  0x00874d24 in __restore_sigs ()
    #1  0x00874d62 in raise ()
    #2  0x0086c916 in abort ()
    #3  0x00825db4 in __gnu_cxx::__verbose_terminate_handler () at /home/cross/armhf/.build/armv7-pi2-linux-musleabihf/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
    #4  0x00825364 in __cxxabiv1::__terminate (handler=<optimized out>) at /home/cross/armhf/.build/armv7-pi2-linux-musleabihf/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
    #5  0x008253b2 in std::terminate () at /home/cross/armhf/.build/armv7-pi2-linux-musleabihf/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58
    #6  0x008254d6 in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=0x892f08 <typeinfo for mqtt::exception>, dest=0xe46c5 <mqtt::exception::~exception()>)
        at /home/cross/armhf/.build/armv7-pi2-linux-musleabihf/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95
    #7  0x005a271e in mqtt::async_client::publish(std::shared_ptr<mqtt::message const>) ()
    #8  0x000d8cb6 in repetier::MQTTConnector::publish(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, bool) ()
    #9  0x000d8fd0 in repetier::MQTTConnector::reportEvent(std::shared_ptr<repetier::RepetierEvent>) ()
    #10 0x001934e2 in repetier::RepetierEvent::fireEvent(std::shared_ptr<repetier::RepetierEvent>) ()
    #11 0x00193b70 in repetier::RepetierEvent::fireGlobalEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, json_spirit::Value_impl<json_spirit::Config_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, json_spirit::Value_impl<json_spirit::Config_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >) ()
    #12 0x0020c588 in repetier::HardwareInfo::run(std::shared_ptr<repetier::RepetierEvent>) ()
    #13 0x000e5e5e in boost::detail::function::void_function_invoker1<void (*)(std::shared_ptr<repetier::RepetierEvent>), void, std::shared_ptr<repetier::RepetierEvent> >::invoke(boost::detail::function::function_buffer&, std::shared_ptr<repetier::RepetierEvent>) ()
    #14 0x001935d6 in repetier::RepetierEvent::fireEvent(std::shared_ptr<repetier::RepetierEvent>) ()
    #15 0x0020abec in repetier::CronJob::fireJob(std::shared_ptr<repetier::CronJob>) ()
    #16 0x00211276 in boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(std::shared_ptr<repetier::CronJob>), boost::_bi::list1<boost::_bi::value<std::shared_ptr<repetier::CronJob> > > > >::run() ()
    #17 0x005f3f76 in thread_proxy ()
    #18 0x0087a4b0 in start ()
    #19 0x008812e4 in __clone ()
    #20 0x008812e4 in __clone ()


    Hoffe das hilft weiter
  • Ja es hilft. Es ist definitiv MQTT, abschalten wird also dein Problem erst mal lösen.
    Etwas problematisch ist, das es die MQTT Bibliothek ist, die entschieden hat das Program zu beenden. Mit buffer voll könnt eich ja leben, aber diese Entscheidung den Server zu beenden ist nicht akzeptabel.

    Jetzt muss ich nur noch rausbekommen wie ich das reproduzieren kann. Mein MQTT ist Mosquito da sich lokal auf einem Pi laufen hab mit Homeassistant.

    Was für ein MQTT Broker verwendest du und ist der möglicherweise zeitweise schlecht/langsam erreichbar. Bei Trennung verbindet er sich ja einfach neu. Die Meldung deutet ja darauf hin das er die Daten nicht los wurde und vermutlich dann entschieden hat das Program zu crashen. Werd das jedenfalls genauer im mqtt Quellcode untersuchen wo die Meldung erzeugt wird und wo das abort her kommen kann.

  • Ok ich habe die Zeile gefunden die es auslöst und kann den fehler in so weit abfangen, dass es den Server nicht abstürzen lässt.

    Problem ist das gleiche wie wo
    2022-03-12 03:43:47: MQTT error [-12]: No more messages can be buffered
    gemeldet wird, nur das der Weg nicht abgefangen wurde und wenn dann MQTT Probleme hat stoppt der Server.

    Den Absturz kann ich damit abfangen, die Ursache ist aber wie die Meldung vermuten lässt eine Überforderung des MQTT Brokers. Er ist zu langsam um die Daten schnell genug zu verarbeiten oder die Verbindung ist zu langsam.
  • Mein MQTT Broker ist der in FHEM integrierte und auch im lokalen Netzwerk. FHEM blockt leider manchmal ein paar Sekunden (muss ich bei Gelegenheit mal neu aufsetzten die installation ist schon ewig alt und hat ne menge müll angesammelt), aber in dem Fall sollte das, wie du ja schon schreibst, eigentlich nicht den Printserver stoppen. 
  • Ja sollte nicht, ist aber beim testen leider nicht aufgefallen. Mit dem morgigen nightly build ist es aber bereits behoben, oder wie gesagt mqtt ausschalten bis zum Update.

    FHEM kannte ich noch nicht. Aber aussetzer von ein paar sekunden können schon mal stören. In deinem Fall war es weil du alle events weiter gibst (hoffe meine Filter sind noch drin). Wenn du die nicht brachst kannst du die auch abschalten. Status daten werden alle 5 sekunden gepusht, da mal was zu verpassen ist nicht sonderlich schlimm. Nur bei interaktiver Kommunikation ist so was störend.
  • Alles klar, danke
Sign In or Register to comment.