Webserver stürzt ab

Hallo,

ich habe seit ca einer Woche das Problem, dass der „Webserver“ von IPS mir sporadisch abstürzt.
Es äußert sich so, dass ich keinen Zugriff auf die Web-Console, Weboberfläche oder Zugriff via IPSView habe.
Scripte angesteuert durch z.B. Zeitschaltuhren funktionieren weiterhin.

Ich habe leider nur mal ein Logfile (gdb.txt) erstellt, als der „Absturz“ schon war und folgende Zeilen kommen immer wieder vor:

Thread 52 (Thread 0x7f40b3bf5700 (LWP 11180)):
#0  0x00007f4109771f85 in futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7f40b3bf3830, expected=0, futex_word=0x7f40e411c66c) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7f40b3bf3830, mutex=0x55aa31e410d0, cond=0x7f40e411c640) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=0x7f40e411c640, mutex=0x55aa31e410d0, abstime=0x7f40b3bf3830) at pthread_cond_wait.c:667
#3  0x000055aa2cc96aa1 in IPSTimerPool::processTimers()::{lambda()#1}::operator()() ()
#4  0x000055aa2e538fbf in execute_native_thread_routine ()
#5  0x00007f410976b6db in start_thread (arg=0x7f40b3bf5700) at pthread_create.c:463
#6  0x00007f41088b188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 51 (Thread 0x7f40a37e9700 (LWP 9829)):
#0  0x00007f4109771f85 in futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7f40a37e6560, expected=0, futex_word=0x7f40c025bd08) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7f40a37e6560, mutex=0x55aa320575b0, cond=0x7f40c025bce0) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=0x7f40c025bce0, mutex=0x55aa320575b0, abstime=0x7f40a37e6560) at pthread_cond_wait.c:667
#3  0x000055aa2cc4a376 in IPSScriptEngine::RunWebFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mpark::variant<bool, int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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, mpark::variant<bool, int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mpark::variant<bool, int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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, mpark::variant<bool, int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) ()
#4  0x000055aa2cb6a78b in void IPSDataServer::HandleFileRequest<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Response, SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Request>(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Response>, std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Request>) ()
#5  0x000055aa2cb7189a in std::_Function_handler<void (std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Response>, std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Request>), void IPSDataServer::AssignServerHandler<SimpleWeb::Server<asio::basic_stream_socket<asio::ip::tcp> > >(std::shared_ptr<SimpleWeb::Server<asio::basic_stream_socket<asio::ip::tcp> > >)::{lambda(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Response>, std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Request>)#8}>::_M_invoke(std::_Any_data const&, std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Response>&&, std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Request>&&) ()
#6  0x000055aa2c2e8f7e in SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::write(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Session> const&, std::function<void (std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Response>, std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Request>)>&) ()
#7  0x000055aa2c2e9bbe in SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::find_resource(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Session> const&) ()
#8  0x000055aa2c2ecdba in SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::read(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Session> const&)::{lambda(std::error_code const&, unsigned long)#1}::operator()(std::error_code const&, unsigned long) const ()
#9  0x000055aa2c2ecfda in asio::detail::read_until_delim_string_op<asio::basic_stream_socket<asio::ip::tcp>, asio::basic_streambuf_ref<std::allocator<char> >, SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::read(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Session> const&)::{lambda(std::error_code const&, unsigned long)#1}>::operator()(std::error_code const&, unsigned long, int) ()
#10 0x000055aa2c2ee401 in asio::detail::reactive_socket_recv_op<asio::mutable_buffers_1, asio::detail::read_until_delim_string_op<asio::basic_stream_socket<asio::ip::tcp>, asio::basic_streambuf_ref<std::allocator<char> >, SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::read(std::shared_ptr<SimpleWeb::ServerBase<asio::basic_stream_socket<asio::ip::tcp> >::Session> const&)::{lambda(std::error_code const&, unsigned long)#1}> >::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) ()
#11 0x000055aa2cb05835 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<IPSDataServer::MessageSink(IPSMessage const&)::{lambda()#1}> > >::_M_run() ()
#12 0x000055aa2e538fbf in execute_native_thread_routine ()
#13 0x00007f410976b6db in start_thread (arg=0x7f40a37e9700) at pthread_create.c:463
#14 0x00007f41088b188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Kann mir jemand helfen, woran es liegt?

Ich habe ein Ubuntu 18.04.3
IPS in der Version: 5.3 vom 16.12.2019
Fehler tritt zwischen 1 und 3 Tagen auf, immer nachts

Gruß Dominik

Nachtrag:
Ich habe mir die IPS Logfiles mal genauer angesehen.
Ich hatte nur eine Änderung im Dezember gemacht: Aktivierung von IPS Connect für die Aktivierung des Moduls: Backup auf DropBox.

In den Logfiles ist immer an der Nacht des Absturzes mehrere Einträge von dem Connect:

19.12.2019 23:34:46 | 45052 | ERROR | TimerPool | Connect (ConnectionCheck): Operation aborted.
19.12.2019 23:36:47 | 45052 | ERROR | Connect Control | connect: Connection timed out
19.12.2019 23:37:29 | 45052 | ERROR | TimerPool | Connect (ConnectionCheck): Operation aborted.
19.12.2019 23:39:29 | 45052 | ERROR | Connect Control | connect: Connection timed out
19.12.2019 23:39:29 | 45052 | MESSAGE | Connect Control | Verbinde…
19.12.2019 23:39:29 | 45052 | MESSAGE | Connect Control | Initialisiert
19.12.2019 23:40:11 | 45052 | ERROR | TimerPool | Connect (ConnectionCheck): Operation aborted.
19.12.2019 23:41:47 | 45052 | ERROR | TimerPool | Connect (ConnectionCheck): Operation aborted.
19.12.2019 23:43:47 | 45052 | ERROR | Connect Control | connect: Connection timed out
19.12.2019 23:44:29 | 45052 | ERROR | TimerPool | Connect (ConnectionCheck): Operation aborted.
19.12.2019 23:46:29 | 45052 | ERROR | Connect Control | connect: Connection timed out
19.12.2019 23:46:29 | 45052 | MESSAGE | Connect Control | Verbinde…
19.12.2019 23:46:29 | 45052 | MESSAGE | Connect Control | Initialisiert
19.12.2019 23:47:11 | 45052 | ERROR | TimerPool | Connect (ConnectionCheck): Operation aborted.

und so weiter…

Kannst du mir ggf. die ganze gdb.txt an office@symcon.de senden?

Bei scheinen die PHP Thread voll/blockiert zu sein, sodass die Ausführung dort ewig wartet. Mehr kann ich nur aus der ganzen gdb.txt herausfinden.

paresy

Nur noch kurz als Referenz: Anhand vom Debug Log, welches du mir geschickt hast, hattest du viele lokale RPC Verbindungen gemacht (welche wiederum PHP Threads belegt haben) sodass im ungünstigen Falle dadurch ein deadlock entstehen konnte.

paresy