Closed caregg closed 6 years ago
Crash-Report:
Application information:
Application version: r2.9.1-1
Installation root: /usr
Sysconf directory: /etc
Run directory: /run
Local state directory: /var
Package data directory: /usr/share/icinga2
State path: /var/lib/icinga2/icinga2.state
Modified attributes path: /var/lib/icinga2/modified-attributes.conf
Objects path: /var/cache/icinga2/icinga2.debug
Vars path: /var/cache/icinga2/icinga2.vars
PID path: /run/icinga2/icinga2.pid
System information:
Platform: Fedora
Platform version: 28 (Twenty Eight)
Kernel: Linux
Kernel version: 4.17.11-200.fc28.x86_64
Architecture: x86_64
Build information:
Compiler: GNU 8.1.1
Build host: unknown
Stacktrace:
(0) libc.so.6: gsignal (+0x10b) [0x7f2a478affeb]
(1) libc.so.6: abort (+0x12b) [0x7f2a4789a5c1]
(2) /usr/lib64/icinga2/sbin/icinga2() [0x9db5d8]
(3) icinga2: icinga::FilterUtility::GetFilterTargets(icinga::QueryDescription const&, boost::intrusive_ptr<icinga::Dictionary> const&, boost::intrusive_ptr<icinga::ApiUser> const&, icinga::String const&) (+0xd1c) [0x8c572c]
(4) icinga2: icinga::StatusHandler::HandleRequest(boost::intrusive_ptr<icinga::ApiUser> const&, icinga::HttpRequest&, icinga::HttpResponse&, boost::intrusive_ptr<icinga::Dictionary> const&) (+0x2d6) [0x8abc86]
(5) icinga2: icinga::HttpHandler::ProcessRequest(boost::intrusive_ptr<icinga::ApiUser> const&, icinga::HttpRequest&, icinga::HttpResponse&) (+0x4d7) [0x8c1c37]
(6) icinga2: icinga::HttpServerConnection::ProcessMessageAsync(icinga::HttpRequest&, icinga::HttpResponse&, boost::intrusive_ptr<icinga::ApiUser> const&) (+0x3a) [0x8c1f5a]
(7) icinga2: icinga::WorkQueue::RunTaskFunction(std::function<void ()> const&) (+0x32) [0x95a452]
(8) icinga2: icinga::WorkQueue::WorkerThreadProc() (+0x965) [0x96a705]
(9) libboost_thread.so.1.66.0: <unknown function> (+0x14af1) [0x7f2a4a364af1]
(10) libpthread.so.0: <unknown function> (+0x7594) [0x7f2a47c3f594]
(11) libc.so.6: clone (+0x3f) [0x7f2a479730df]
***
* This would indicate a runtime problem or configuration error. If you believe this is a bug in Icinga 2
* please submit a bug report at https://github.com/Icinga/icinga2 and include this stack trace as well as any other
* information that might be useful in order to reproduce this problem.
***
[New LWP 22318]
[New LWP 22319]
[New LWP 22320]
[New LWP 22321]
[New LWP 22322]
[New LWP 22330]
[New LWP 22339]
[New LWP 22340]
[New LWP 22341]
[New LWP 22345]
[New LWP 22346]
[New LWP 22347]
[New LWP 22348]
[New LWP 22349]
[New LWP 22350]
[New LWP 22351]
[New LWP 22352]
[New LWP 22353]
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
0x00007f2a4793f9a0 in nanosleep () from /lib64/libc.so.6
Thread 19 (Thread 0x7f2a41811700 (LWP 22353)):
#0 0x00007f2a47c4992a in waitpid () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009c403e in icinga::Application::AttachDebugger(icinga::String const&, bool) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/application.cpp:670
my_pid = {static NPos = 18446744073709551615, m_Data = "22291"}
pid = <optimized out>
__PRETTY_FUNCTION__ = "static void icinga::Application::AttachDebugger(const icinga::String&, bool)"
status = 1969516402
argv = <optimized out>
my_pid_str = <optimized out>
fd = <optimized out>
uargv = <optimized out>
uargv = <optimized out>
#2 0x00000000009f48d2 in icinga::Application::SigAbrtHandler(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/application.cpp:801
sa = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0}
fname = {static NPos = 18446744073709551615, m_Data = "/var/log/icinga2/crash/report.1533734120.309531"}
dirName = {static NPos = 18446744073709551615, m_Data = "/var/log/icinga2/crash"}
interactive_debugger = false
ofs = <optimized out>
trace = <optimized out>
#3 <signal handler called>
No symbol table info available.
#4 0x00007f2a478affeb in raise () from /lib64/libc.so.6
No symbol table info available.
#5 0x00007f2a4789a5c1 in abort () from /lib64/libc.so.6
No symbol table info available.
#6 0x00000000009db5d8 in std::__replacement_assert (__file=<optimized out>, __line=<optimized out>, __function=<optimized out>, __condition=<optimized out>) at /usr/include/c++/8/x86_64-redhat-linux/bits/c++config.h:2389
No locals.
#7 0x00000000008c572c in icinga::FilterUtility::GetFilterTargets(icinga::QueryDescription const&, boost::intrusive_ptr<icinga::Dictionary> const&, boost::intrusive_ptr<icinga::ApiUser> const&, icinga::String const&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/remote/filterutility.cpp:214
result = std::vector of length 0, capacity 0
provider = {px = 0x7f2a2808dde0}
permissionFilter = 0x0
permissionFrame = {Locals = {px = 0x7f2a2808fd30}, Self = {m_Value = {which_ = 4, storage_ = {<boost::detail::aligned_storage::aligned_storage_imp<32, 8>> = {<No data fields>}, static size = <optimized out>, static alignment = <optimized out>}}}, Sandboxed = false, Depth = 0, static m_ScriptFrames = {cleanup = {px = 0x10dc1f0, pn = {pi_ = 0x10dc210}}}, static m_Imports = {px = 0x10dc740}}
__PRETTY_FUNCTION__ = "static std::vector<icinga::Value> icinga::FilterUtility::GetFilterTargets(const icinga::QueryDescription&, const Ptr&, const Ptr&, const icinga::String&)"
type = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
attr = <optimized out>
name = <optimized out>
target = <optimized out>
names = <optimized out>
olock = <optimized out>
name = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
target = <optimized out>
type = <optimized out>
frame = <optimized out>
uvars = <optimized out>
ufilter = <optimized out>
filter_vars = <optimized out>
filter = <optimized out>
olock = <optimized out>
kv = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
#8 0x00000000008abc86 in icinga::StatusHandler::HandleRequest(boost::intrusive_ptr<icinga::ApiUser> const&, icinga::HttpRequest&, icinga::HttpResponse&, boost::intrusive_ptr<icinga::Dictionary> const&) () at /usr/include/c++/8/bits/char_traits.h:285
qd = {Types = std::set with 1 element = {[0] = {static NPos = 18446744073709551615, m_Data = "Status"}}, Provider = {px = 0x7f2a2808dde0}, Permission = {static NPos = 18446744073709551615, m_Data = "status/query"}}
objs = std::vector of length 0, capacity 0
result = {px = 0x1100820}
ex = <optimized out>
#9 0x00000000008c1c37 in icinga::HttpHandler::ProcessRequest(boost::intrusive_ptr<icinga::ApiUser> const&, icinga::HttpRequest&, icinga::HttpResponse&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/remote/httphandler.cpp:109
node = {px = 0x0}
handlers = std::vector of length 2, capacity 2 = {{px = 0x10fb8f0}, {px = 0x1109b80}}
path = <optimized out>
params = {px = 0x7f2a280299c0}
processed = false
i = <optimized out>
current_handlers = <optimized out>
children = <optimized out>
olock = <optimized out>
current_handler = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
handler = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
path = <optimized out>
#10 0x00000000008c1f5a in icinga::HttpServerConnection::ProcessMessageAsync(icinga::HttpRequest&, icinga::HttpResponse&, boost::intrusive_ptr<icinga::ApiUser> const&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/remote/httpserverconnection.cpp:328
ex = <optimized out>
#11 0x000000000095a452 in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/8/bits/std_function.h:260
No locals.
#12 icinga::WorkQueue::RunTaskFunction(std::function<void ()> const&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/workqueue.cpp:252
eptr = <optimized out>
mutex = <optimized out>
#13 0x000000000096a705 in icinga::WorkQueue::WorkerThreadProc() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/workqueue.cpp:295
idbuf = <incomplete type>
lock = {m = 0x7f2a280a36d8, is_locked = false}
task = <optimized out>
#14 0x00007f2a4a364af1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#15 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#16 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 18 (Thread 0x7f2a41852700 (LWP 22352)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 17 (Thread 0x7f2a41893700 (LWP 22351)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 16 (Thread 0x7f2a418d4700 (LWP 22350)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 15 (Thread 0x7f2a41915700 (LWP 22349)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 14 (Thread 0x7f2a41956700 (LWP 22348)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 13 (Thread 0x7f2a41997700 (LWP 22347)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 12 (Thread 0x7f2a419d8700 (LWP 22346)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 11 (Thread 0x7f2a41a19700 (LWP 22345)):
#0 0x00007f2a479733ff in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000000000990839 in icinga::SocketEventEngineEpoll::ThreadProc(int) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socketevents-epoll.cpp:88
pevents = <optimized out>
ready = <optimized out>
events = <optimized out>
lock = <optimized out>
lock = <optimized out>
i = <optimized out>
event = <optimized out>
buffer = <optimized out>
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
ex = <optimized out>
#2 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 10 (Thread 0x7f2a41a9b700 (LWP 22341)):
#0 0x00007f2a47c4587a in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e1aa4 in boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:115
cond_res = <optimized out>
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x0000000000767b46 in icinga::CheckerComponent::CheckThreadProc() () at /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:140
lock = {m = 0x7f2a1c0312e0, is_locked = false}
idx = <optimized out>
it = <optimized out>
csi = <optimized out>
wait = <optimized out>
checkable = <optimized out>
forced = <optimized out>
check = <optimized out>
host = <optimized out>
service = <optimized out>
tp = <optimized out>
olock = <optimized out>
#3 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 9 (Thread 0x7f2a41adc700 (LWP 22340)):
#0 0x00007f2a47c48dc7 in accept () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x000000000098ac3b in icinga::Socket::Accept() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/socket.cpp:328
addr = {<No data fields>}
addrlen = 128
fd = <optimized out>
__PRETTY_FUNCTION__ = "icinga::Socket::Ptr icinga::Socket::Accept()"
#2 0x00000000008e6f70 in icinga::ApiListener::ListenerThreadProc(boost::intrusive_ptr<icinga::Socket> const&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/remote/apilistener.cpp:350
client = <optimized out>
thread = <optimized out>
#3 0x000000000087650e in std::__invoke_impl<void, void (icinga::ApiListener::*&)(boost::intrusive_ptr<icinga::Socket> const&), icinga::ApiListener*&, boost::intrusive_ptr<icinga::TcpSocket>&> (__t=<optimized out>, __f=<optimized out>) at /usr/include/c++/8/bits/invoke.h:73
No locals.
#4 std::__invoke<void (icinga::ApiListener::*&)(boost::intrusive_ptr<icinga::Socket> const&), icinga::ApiListener*&, boost::intrusive_ptr<icinga::TcpSocket>&> (__fn=<optimized out>) at /usr/include/c++/8/bits/invoke.h:95
No locals.
#5 std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) (__args=..., this=<optimized out>) at /usr/include/c++/8/functional:400
No locals.
#6 std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)>::operator()<, void>() (this=<optimized out>) at /usr/include/c++/8/functional:484
No locals.
#7 std::__invoke_impl<void, std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)>>(std::__invoke_other, std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)>&&) (__f=...) at /usr/include/c++/8/bits/invoke.h:60
No locals.
#8 std::__invoke<std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)>>(std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)>&&) (__fn=...) at /usr/include/c++/8/bits/invoke.h:95
No locals.
#9 std::thread::_Invoker<std::tuple<std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=<optimized out>) at /usr/include/c++/8/thread:234
No locals.
#10 std::thread::_Invoker<std::tuple<std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)> > >::operator()() (this=<optimized out>) at /usr/include/c++/8/thread:243
No locals.
#11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind<void (icinga::ApiListener::*(icinga::ApiListener*, boost::intrusive_ptr<icinga::TcpSocket>))(boost::intrusive_ptr<icinga::Socket> const&)> > > >::_M_run() () at /usr/include/c++/8/thread:186
No locals.
#12 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#13 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#14 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 8 (Thread 0x7f2a4a7f3700 (LWP 22339)):
#0 0x00007f2a47c4552c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e16ac in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:81
res = 0
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x000000000096a80e in icinga::WorkQueue::WorkerThreadProc() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/workqueue.cpp:280
idbuf = <incomplete type>
lock = {m = 0x7f2a1c010fe0, is_locked = false}
task = <optimized out>
#3 0x00007f2a4a364af1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 7 (Thread 0x7f2a4a834700 (LWP 22330)):
#0 0x00007f2a47c4587a in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e1aa4 in boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:115
cond_res = <optimized out>
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x00000000009919cb in icinga::Timer::TimerThreadProc() () at /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:140
lock = <optimized out>
idx = <optimized out>
it = <optimized out>
timer = <optimized out>
wait = <optimized out>
ptimer = <optimized out>
#3 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 6 (Thread 0x7f2a4a979700 (LWP 22322)):
#0 0x00007f2a47c4587a in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e1aa4 in boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:115
cond_res = <optimized out>
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x000000000098ef3b in icinga::ThreadPool::ManagerThreadProc() () at /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:140
idbuf = <incomplete type>
lastStats = 1533734114.7842159
total_pending = <optimized out>
total_alive = <optimized out>
total_avg_latency = <optimized out>
total_utilization = <optimized out>
now = <optimized out>
lock = <optimized out>
queue = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
pending = <optimized out>
alive = <optimized out>
avg_latency = <optimized out>
utilization = <optimized out>
lock = <optimized out>
thread = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
thread = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
wthreads = <optimized out>
tthreads = <optimized out>
i = <optimized out>
i = <optimized out>
#3 0x00007f2a484c2523 in execute_native_thread_routine () from /lib64/libstdc++.so.6
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 5 (Thread 0x7f2a4a938700 (LWP 22321)):
#0 0x00007f2a47c4552c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e16ac in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:81
res = 0
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x000000000098f87d in icinga::ThreadPool::WorkerThread::ThreadProc(icinga::ThreadPool::Queue&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/threadpool.cpp:110
idbuf = <incomplete type>
lock = {m = 0xdf5ad0 <icinga::Application::GetTP()::tp+2992>, is_locked = false}
wi = <optimized out>
st = <optimized out>
et = <optimized out>
latency = <optimized out>
lock = <optimized out>
ex = <optimized out>
lock = <optimized out>
#3 0x00007f2a4a364af1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 4 (Thread 0x7f2a4a8f7700 (LWP 22320)):
#0 0x00007f2a47c4552c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e16ac in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:81
res = 0
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x000000000098f87d in icinga::ThreadPool::WorkerThread::ThreadProc(icinga::ThreadPool::Queue&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/threadpool.cpp:110
idbuf = <incomplete type>
lock = {m = 0xdf5790 <icinga::Application::GetTP()::tp+2160>, is_locked = false}
wi = <optimized out>
st = <optimized out>
et = <optimized out>
latency = <optimized out>
lock = <optimized out>
ex = <optimized out>
lock = <optimized out>
#3 0x00007f2a4a364af1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 3 (Thread 0x7f2a4a8b6700 (LWP 22319)):
#0 0x00007f2a47c4552c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e16ac in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:81
res = 0
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x000000000098f87d in icinga::ThreadPool::WorkerThread::ThreadProc(icinga::ThreadPool::Queue&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/threadpool.cpp:110
idbuf = <incomplete type>
lock = {m = 0xdf5450 <icinga::Application::GetTP()::tp+1328>, is_locked = false}
wi = <optimized out>
st = <optimized out>
et = <optimized out>
latency = <optimized out>
lock = <optimized out>
ex = <optimized out>
lock = <optimized out>
#3 0x00007f2a4a364af1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 2 (Thread 0x7f2a4a875700 (LWP 22318)):
#0 0x00007f2a47c4552c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00000000009e16ac in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) () at /usr/include/boost/thread/pthread/condition_variable.hpp:81
res = 0
guard = <optimized out>
check_for_interruption = <optimized out>
the_mutex = <optimized out>
#2 0x000000000098f87d in icinga::ThreadPool::WorkerThread::ThreadProc(icinga::ThreadPool::Queue&) () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/threadpool.cpp:110
idbuf = <incomplete type>
lock = {m = 0xdf5110 <icinga::Application::GetTP()::tp+496>, is_locked = false}
wi = <optimized out>
st = <optimized out>
et = <optimized out>
latency = <optimized out>
lock = <optimized out>
ex = <optimized out>
lock = <optimized out>
#3 0x00007f2a4a364af1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#4 0x00007f2a47c3f594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f2a479730df in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7f2a4a982900 (LWP 22291)):
#0 0x00007f2a4793f9a0 in nanosleep () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007f2a4793f87a in sleep () from /lib64/libc.so.6
No symbol table info available.
#2 0x00000000009f54aa in icinga::Application::RunEventLoop() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/utility.cpp:428
lastLoop = 1533734119.5272
now = <optimized out>
timeDiff = <optimized out>
#3 0x00000000007f77fb in icinga::IcingaApplication::Main() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/icinga/icingaapplication.cpp:107
No locals.
#4 0x00000000009f2e1e in icinga::Application::Run() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/base/application.cpp:1016
sa = {__sigaction_handler = {sa_handler = 0x9f2e60 <icinga::Application::SigUsr2Handler(int)>, sa_sigaction = 0x9f2e60 <icinga::Application::SigUsr2Handler(int)>}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0}
#5 0x000000000088acc5 in icinga::DaemonCommand::Run(boost::program_options::variables_map const&, std::vector<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> > > > const&) const () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/lib/cli/daemoncommand.cpp:295
configs = std::vector of length 1, capacity 1 = {"/etc/icinga2/icinga2.conf"}
newItems = std::vector of length 262, capacity 512 = {{px = 0x14329f0}, {px = 0x14324b0}, {px = 0x1431f10}, {px = 0x1431570}, {px = 0x1431a70}, {px = 0x14120b0}, {px = 0x14125c0}, {px = 0x140f0d0}, {px = 0x14113a0}, {px = 0x1430f60}, {px = 0x140f580}, {px = 0x1446fa0}, {px = 0x140e6e0}, {px = 0x13dd610}, {px = 0x1116890}, {px = 0x11164c0}, {px = 0x11188a0}, {px = 0x1118cd0}, {px = 0x1411b60}, {px = 0x147afb0}, {px = 0x13b5fc0}, {px = 0x13d95b0}, {px = 0x111d970}, {px = 0x1123c70}, {px = 0x111f4f0}, {px = 0x11215f0}, {px = 0x10ff790}, {px = 0x11b68c0}, {px = 0x11a1e60}, {px = 0x111def0}, {px = 0x111e9f0}, {px = 0x111a7f0}, {px = 0x1354360}, {px = 0x111ad70}, {px = 0x111e470}, {px = 0x11b6d70}, {px = 0x1126d80}, {px = 0x13b7720}, {px = 0x11b7bd0}, {px = 0x1123170}, {px = 0x11241f0}, {px = 0x11bbfe0}, {px = 0x11bf2e0}, {px = 0x11c0e10}, {px = 0x1124770}, {px = 0x13b7160}, {px = 0x130b730}, {px = 0x11baa50}, {px = 0x11bafa0}, {px = 0x11bb520}, {px = 0x1127900}, {px = 0x1120570}, {px = 0x11c0890}, {px = 0x11b8b50}, {px = 0x1309550}, {px = 0x1309b70}, {px = 0x1120af0}, {px = 0x130c2b0}, {px = 0x130c870}, {px = 0x11c1e90}, {px = 0x13b2c00}, {px = 0x130bcf0}, {px = 0x13b5440}, {px = 0x13b5a00}, {px = 0x130aba0}, {px = 0x130a0b0}, {px = 0x13d8560}, {px = 0x13b3780}, {px = 0x1121070}, {px = 0x111c370}, {px = 0x1351340}, {px = 0x130b170}, {px = 0x13b6580}, {px = 0x1121b70}, {px = 0x13b4300}, {px = 0x13db210}, {px = 0x11267c0}, {px = 0x135ecf0}, {px = 0x1122670}, {px = 0x135edf0}, {px = 0x1124cf0}, {px = 0x1122bf0}, {px = 0x13db6a0}, {px = 0x13d9030}, {px = 0x111fff0}, {px = 0x111ef70}, {px = 0x140c6b0}, {px = 0x140e810}, {px = 0x1408da0}, {px = 0x13f5710}, {px = 0x140dd50}, {px = 0x1412990}, {px = 0x13f3bc0}, {px = 0x13f40d0}, {px = 0x13f4630}, {px = 0x140edb0}, {px = 0x13f4be0}, {px = 0x13f51c0}, {px = 0x11257f0}, {px = 0x1119cf0}, {px = 0x1119770}, {px = 0x13b31c0}, {px = 0x1127ec0}, {px = 0x11bc390}, {px = 0x11b7220}, {px = 0x13dbb50}, {px = 0x11220f0}, {px = 0x11b91b0}, {px = 0x13dc4d0}, {px = 0x12657a0}, {px = 0x13dca50}, {px = 0x1265c50}, {px = 0x13dcfd0}, {px = 0x11c2990}, {px = 0x1126200}, {px = 0x111b870}, {px = 0x13f1f00}, {px = 0x1125270}, {px = 0x11b76d0}, {px = 0x13b3d40}, {px = 0x1127340}, {px = 0x1125d70}, {px = 0x13b48c0}, {px = 0x13f2470}, {px = 0x11c2410}, {px = 0x11236f0}, {px = 0x13b6bd0}, {px = 0x11c1390}, {px = 0x111c8f0}, {px = 0x1366b90}, {px = 0x13da4c0}, {px = 0x1360340}, {px = 0x1369720}, {px = 0x13daa80}, {px = 0x13db040}, {px = 0x13d9f30}, {px = 0x111d3f0}, {px = 0x111ce70}, {px = 0x11c2f10}, {px = 0x13d8ab0}, {px = 0x111a270}, {px = 0x11bfd90}, {px = 0x13d9b30}, {px = 0x11c1910}, {px = 0x111bdf0}, {px = 0x13f29f0}, {px = 0x11bf810}, {px = 0x11c0310}, {px = 0x13f2f70}, {px = 0x111fa70}, {px = 0x13f34f0}, {px = 0x111b2f0}, {px = 0x13f3a70}, {px = 0x13b8f50}, {px = 0x13ba890}, {px = 0x13ba240}, {px = 0x13b9bf0}, {px = 0x13b95a0}, {px = 0x13baee0}, {px = 0x13bb530}, {px = 0x13b88d0}, {px = 0x13bc160}, {px = 0x13bce00}, {px = 0x13bd450}, {px = 0x13be0f0}, {px = 0x13bdaa0}, {px = 0x13c32d0}, {px = 0x13c3920}, {px = 0x13c6ba0}, {px = 0x13c6550}, {px = 0x13c71f0}, {px = 0x13c45c0}, {px = 0x13c4c10}, {px = 0x13c3f70}, {px = 0x13c7840}, {px = 0x13c5f00}, {px = 0x13c5260}, {px = 0x13c58b0}, {px = 0x13c7e90}, {px = 0x13be740}, {px = 0x13bf3e0}, {px = 0x13c06d0}, {px = 0x13c0080}, {px = 0x13bfa30}, {px = 0x13bed90}, {px = 0x13c0d20}, {px = 0x13c2660}, {px = 0x13c19c0}, {px = 0x13c2010}, {px = 0x13c1370}, {px = 0x13c8b30}, {px = 0x13c9180}, {px = 0x13ca470}, {px = 0x13cab70}, {px = 0x13cb1c0}, {px = 0x13cc490}, {px = 0x13c97d0}, {px = 0x13c9e20}, {px = 0x13cb810}, {px = 0x13cbe40}...}
sa = {__sigaction_handler = {sa_handler = 0x871860 <SigHupHandler(int)>, sa_sigaction = 0x871860 <SigHupHandler(int)>}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0}
runningpid = <optimized out>
rc = <optimized out>
start = <optimized out>
ex = <optimized out>
upq = <optimized out>
errorLog = <optimized out>
#6 0x00000000009f782d in Main() () at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/icinga-app/icinga.cpp:573
args = std::vector of length 0, capacity 0
argc = 5
argv = 0x7ffc357fa608
autocomplete = <optimized out>
autoindex = 0
icingaUser = {static NPos = 18446744073709551615, m_Data = "icinga"}
icingaGroup = {static NPos = 18446744073709551615, m_Data = "icinga"}
logLevel = icinga::LogInformation
visibleDesc = {static m_default_line_length = 80, m_caption = "Global options", m_line_length = 80, m_min_description_length = 40, m_options = std::vector of length 12, capacity 16 = {{px = 0x10f0b90, pn = {pi_ = 0x110fa00}}, {px = 0x110fa80, pn = {pi_ = 0x110fb20}}, {px = 0x110fb40, pn = {pi_ = 0x110fbe0}}, {px = 0x110fc50, pn = {pi_ = 0x110fd10}}, {px = 0x110fd30, pn = {pi_ = 0x110fdd0}}, {px = 0x110feb0, pn = {pi_ = 0x110ff50}}, {px = 0x110ff90, pn = {pi_ = 0x1110030}}, {px = 0x11103d0, pn = {pi_ = 0x1110450}}, {px = 0x11104d0, pn = {pi_ = 0x11105a0}}, {px = 0x11105f0, pn = {pi_ = 0x11106c0}}, {px = 0x11107a0, pn = {pi_ = 0x1110840}}, {px = 0x1110880, pn = {pi_ = 0x1110920}}}, belong_to_group = std::vector<bool> of length 12, capacity 64 = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, groups = std::vector of length 1, capacity 1 = {{px = 0x10e1ef0, pn = {pi_ = 0x1110ba0}}}}
hiddenDesc = {static m_default_line_length = 80, m_caption = "Hidden options", m_line_length = 80, m_min_description_length = 40, m_options = std::vector of length 3, capacity 4 = {{px = 0x1110070, pn = {pi_ = 0x1110110}}, {px = 0x1110230, pn = {pi_ = 0x11102f0}}, {px = 0x1110a00, pn = {pi_ = 0x1110b00}}}, belong_to_group = std::vector<bool> of length 3, capacity 64 = {0, 0, 0}, groups = std::vector of length 0, capacity 0}
positionalDesc = {m_names = std::vector of length 0, capacity 0, m_trailing = "arg"}
cmdname = {static NPos = 18446744073709551615, m_Data = "daemon"}
command = {px = 0x110ca90}
vm = <incomplete type>
rc = 1
#7 0x0000000000635ebd in main (argc=5, argv=0x7ffc357fa608) at /usr/src/debug/icinga2-2.9.1-1.fc28.icinga.x86_64/icinga-app/icinga.cpp:867
rc = <optimized out>
Hmmm unfortunately I'm not able to reproduce this on F28 here. The query you're firing against the API, how does it look exactly - only the URL or are there more parameters involved?
I can see that the crash sources from std::__replacement_assert
which would generally mean that std::vector and likely the emplace_back() call are involved here.
Blind guess:
Object::Ptr target = provider->GetTargetByName(type, name);
if (!FilterUtility::EvaluateFilter(permissionFrame, permissionFilter, target, variableName))
BOOST_THROW_EXCEPTION(ScriptError("Access denied to object '" + name + "' of type '" + type + "'"));
result.emplace_back(std::move(target));
target
may be null, but that should trigger EvaluateFilter() before. @Al2Klimov do you have experience with that, or an idea?
The crashing queries are exactly like under "Current Behavior", fired as bash-command:
curl -k -u USER:PASSWORD 'https://icinga.fqdn:5665/v1/status'
curl -k -u USER:PASSWORD 'https://icinga.fqdn:5665/v1/objects/hosts'
The second command with a hostname at the end works fine:
curl -k -u USER:PASSWORD 'https://icinga.fqdn:5665/v1/objects/hosts/icinga.fqdn'
In the meanwhile I tried to reproduce the problem on other machines. On a Debian-server there is no problem, but on a virtual machine in VMware Player with Fedora 28 and the newest sofware-packages I've got the same error like on my real Fedora-machine:
# curl -k -u USER:PASSWORD 'https://icinga.fqdn:5665/v1/status'
curl: (52) Empty reply from server
Maybe there is a general problem with fedora at all?!
@caregg Just to be sure: You create a fresh virtual machine in VMware Player with Fedora 28 and perform your four "Steps to Reproduce"... and it reliably doesn't work?
Yes, exactly. Here is what I did:
The result is:
# curl -k -u USER:PASSWORD 'https://icinga.fqdn:5665/v1/status'
curl: (52) Empty reply from server
Did you use the Fedora 27 repository? Because the Fedora 28 repository on packages.icinga.com is currently not available.
I've tested this both with a manually build 2.9.1 and the Fedora 27 repository. The crash did happen on that Fedora 27 repository but not when build manually.
I'll revisit this issue when our Fedora 28 repository is up and running.
With the repository of Fedora 28.
@caregg The F28 repo seems to ship packages again. Does the error still occur with fresh F28 packages?
@Al2Klimov it does. Might be something packaging related.
Confirmed on a fresh Fedora 28 system with 2.9.1-1
@dnsmichi @Crunsher send me your SSH key if you want access
This happens on F28 only with gcc 8.1.1 and enabled -Wp,-D_GLIBCXX_ASSERTIONS
compiler flags by default during rpm builds.
https://bugzilla.redhat.com/show_bug.cgi?id=1515858 https://fedoraproject.org/wiki/Changes/HardeningFlags28
More references: https://github.com/StanfordLegion/legion/issues/350 http://lilypond.1069038.n5.nabble.com/2-19-81-aborts-on-many-ly-files-when-compiled-with-gcc8-Wp-D-GLIBCXX-ASSERTIONS-td212802.html https://sourceforge.net/p/astyle/bugs/503/ https://stackoverflow.com/questions/48381058/visual-c-why-does-stdmove-crash
I believe that std::emplace_back() with std::move() on an std::unique_ptr is a problem here.
[2018-09-05 19:35:58 +0200] information/HttpServerConnection: Request: GET /v1/status (from [127.0.0.1]:32816, user: root)
[New Thread 0x7fffabeba700 (LWP 24247)]
/usr/include/c++/8/bits/unique_ptr.h:328: typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp, _Dp>::operator*() const [with _Tp = icinga::Expression; _Dp = std::default_delete<icinga::Expression>; typename std::add_lvalue_reference<_Tp>::type = icinga::Expression&]: Assertion 'get() != pointer()' failed.
[Thread 0x7ffff0118700 (LWP 24233) exited]
Thread 68 "icinga2" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffabeba700 (LWP 24247)]
0x00007ffff4f05feb in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install icinga2-bin-2.9.1-1.fc28.icinga.x86_64
(gdb) bt full
#0 0x00007ffff4f05feb in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff4ef05c1 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00000000009db5d8 in std::__replacement_assert(char const*, int, char const*, char const*) ()
No symbol table info available.
#3 0x00000000008c572c in icinga::FilterUtility::GetFilterTargets(icinga::QueryDescription const&, boost::intrusive_ptr<icinga::Dictionary> const&, boost::intrusive_ptr<icinga::ApiUser> const&, icinga::String const&) ()
No symbol table info available.
#4 0x00000000008abc86 in icinga::StatusHandler::HandleRequest(boost::intrusive_ptr<icinga::ApiUser> const&, icinga::HttpRequest&, icinga::HttpResponse&, boost::intrusive_ptr<icinga::Dictionary> const&) ()
No symbol table info available.
#5 0x00000000008c1c37 in icinga::HttpHandler::ProcessRequest(boost::intrusive_ptr<icinga::ApiUser> const&, icinga::HttpRequest&, icinga::HttpResponse&) ()
No symbol table info available.
#6 0x00000000008c1f5a in icinga::HttpServerConnection::ProcessMessageAsync(icinga::HttpRequest&, icinga::HttpResponse&, boost::intrusive_ptr<icinga::ApiUser> const&) ()
No symbol table info available.
#7 0x000000000095a452 in icinga::WorkQueue::RunTaskFunction(std::function<void ()> const&) ()
No symbol table info available.
#8 0x000000000096a705 in icinga::WorkQueue::WorkerThreadProc() ()
No symbol table info available.
#9 0x00007ffff79baaf1 in thread_proxy () from /lib64/libboost_thread.so.1.66.0
No symbol table info available.
#10 0x00007ffff5295594 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#11 0x00007ffff4fc90df in clone () from /lib64/libc.so.6
No symbol table info available.
For some reason, the debuginfo provided with the packages is scrambled and doesn't provide a full file table for the symbols. I've recompiled by source setup with the hardening flags and can now debug it way better.
vim debug/CMakeCache.txt
//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g -Wp,-D_GLIBCXX_ASSERTIONS
std::move is not correct, it is about the Expression being a unique_ptr.
/usr/include/c++/8/bits/unique_ptr.h:328: typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp, _Dp>::operator*() const [with _Tp = icinga::Expression; _Dp = std::default_delete<icinga::Expression>; typename std::add_lvalue_reference<_Tp>::type = icinga::Expression&]: Assertion 'get() != pointer()' failed.
Thread 68 "icinga2" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff1877700 (LWP 13694)]
0x00007ffff53d9feb in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.27-30.fc28.x86_64 sssd-client-1.16.2-4.fc28.x86_64
(gdb) up
#1 0x00007ffff53c45c1 in abort () from /lib64/libc.so.6
(gdb)
#2 0x0000000000556bf6 in std::__replacement_assert (__file=<optimized out>, __line=<optimized out>, __function=<optimized out>, __condition=<optimized out>)
at /usr/include/c++/8/x86_64-redhat-linux/bits/c++config.h:2389
2389 __builtin_abort();
(gdb)
#3 0x00000000007fa875 in std::unique_ptr<icinga::Expression, std::default_delete<icinga::Expression> >::operator* (this=<optimized out>) at /usr/include/c++/8/bits/unique_ptr.h:328
328 __glibcxx_assert(get() != pointer());
(gdb)
#4 0x00000000007f9ee2 in icinga::FilterUtility::GetFilterTargets (qd=..., query=..., user=..., variableName=...) at /home/michi/coding/icinga/icinga2/lib/remote/filterutility.cpp:273
273 std::ref(frame), &*ufilter, std::ref(result), variableName, _1));
(gdb)
Apparently ufilter
is a nullptr which cannot be passed via reference here.
Proof: If you pass filter
as parameter, everything works fine.
michi@imagine ~ $ curl -k -u root:icinga 'https://localhost:5665/v1/status?filter=abc'
{"error":404.0,"status":"No objects found."}
The fix is not the best code, but actually we need to either check for a) filter
is set (and then use filter_targets
) and pass the compiled filter expression, or otherwise just pass a nullptr. PR is coming for further tests.
@caregg can you test the snapshot packages?
The problem disappeared in version 2.9.1-180 !!!
Thanks, backported for 2.9.2 :)
I am experiencing crashes while using the icinga-api. At first I notices it, after trying to install the icinga-director, the director-kickstarter got an "empty result", because icinga crashed. But it's not necessary to install the director, the problem occurs much earlier...
Current Behavior
Some curl-commands let icinga crashing immediately. For example:
This commands are working:
Steps to Reproduce (for bugs)
Your Environment
Enabled features (
icinga2 feature list
):Config validation (
icinga2 daemon -C
):Debug-Error-Message:
debug.log from daemon-start till crash: