[
https://issues.apache.org/jira/browse/MINIFICPP-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marton Szasz resolved MINIFICPP-2112.
-------------------------------------
Resolution: Fixed
> MiNiFi controller crashes on flow update
> ----------------------------------------
>
> Key: MINIFICPP-2112
> URL: https://issues.apache.org/jira/browse/MINIFICPP-2112
> Project: Apache NiFi MiNiFi C++
> Issue Type: Bug
> Reporter: Gábor Gyimesi
> Assignee: Gábor Gyimesi
> Priority: Major
> Time Spent: 3h 20m
> Remaining Estimate: 0h
>
> MiNiFi controller crashes using the flow update option with resource deadlock.
> {code:java}
> (gdb) bt
> #0 __pthread_kill_implementation (no_tid=0, signo=6,
> threadid=140737018590784) at ./nptl/pthread_kill.c:44
> #1 __pthread_kill_internal (signo=6, threadid=140737018590784) at
> ./nptl/pthread_kill.c:78
> #2 __GI___pthread_kill (threadid=140737018590784, signo=signo@entry=6) at
> ./nptl/pthread_kill.c:89
> #3 0x00007ffff6042476 in __GI_raise (sig=sig@entry=6) at
> ../sysdeps/posix/raise.c:26
> #4 0x00007ffff60287f3 in __GI_abort () at ./stdlib/abort.c:79
> #5 0x00007ffff64a2bbe in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
> #6 0x00007ffff64ae24c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
> #7 0x00007ffff64ad229 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
> #8 0x00007ffff64ad999 in __gxx_personality_v0 () from
> /lib/x86_64-linux-gnu/libstdc++.so.6
> #9 0x00007ffff7f8fc64 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
> #10 0x00007ffff7f90321 in _Unwind_RaiseException () from
> /lib/x86_64-linux-gnu/libgcc_s.so.1
> #11 0x00007ffff64ae50b in __cxa_throw () from
> /lib/x86_64-linux-gnu/libstdc++.so.6
> #12 0x00007ffff64a589f in std::__throw_system_error(int) () from
> /lib/x86_64-linux-gnu/libstdc++.so.6
> #13 0x00007ffff64dc340 in std::thread::join() () from
> /lib/x86_64-linux-gnu/libstdc++.so.6
> #14 0x00007ffff76d8864 in
> org::apache::nifi::minifi::io::ServerSocket::~ServerSocket
> (this=0x555555a54dd0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
> at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/io/ServerSocket.cpp:52
> #15 0x00007ffff76d890c in
> org::apache::nifi::minifi::io::ServerSocket::~ServerSocket
> (this=0x555555a54dd0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
> at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/io/ServerSocket.cpp:53
> #16 0x00007ffff745782e in
> std::default_delete<org::apache::nifi::minifi::io::BaseServerSocket>::operator()
> (this=0x5555559fb590, __ptr=0x555555a54dd0) at
> /usr/include/c++/11/bits/unique_ptr.h:85
> #17 0x00007ffff751ac1e in
> std::__uniq_ptr_impl<org::apache::nifi::minifi::io::BaseServerSocket,
> std::default_delete<org::apache::nifi::minifi::io::BaseServerSocket> >::reset
> (this=0x5555559fb590, __p=0x7fffc0010500) at
> /usr/include/c++/11/bits/unique_ptr.h:182
> #18 0x00007ffff7519f9e in
> std::__uniq_ptr_impl<org::apache::nifi::minifi::io::BaseServerSocket,
> std::default_delete<org::apache::nifi::minifi::io::BaseServerSocket>
> >::operator= (this=0x5555559fb590, __u=...) at
> /usr/include/c++/11/bits/unique_ptr.h:167
> #19 0x00007ffff7519903 in
> std::__uniq_ptr_data<org::apache::nifi::minifi::io::BaseServerSocket,
> std::default_delete<org::apache::nifi::minifi::io::BaseServerSocket>, true,
> true>::operator= (this=0x5555559fb590) at
> /usr/include/c++/11/bits/unique_ptr.h:212
> #20 0x00007ffff7519931 in
> std::unique_ptr<org::apache::nifi::minifi::io::BaseServerSocket,
> std::default_delete<org::apache::nifi::minifi::io::BaseServerSocket>
> >::operator= (this=0x5555559fb590) at
> /usr/include/c++/11/bits/unique_ptr.h:371
> #21 0x00007ffff7515f72 in
> org::apache::nifi::minifi::c2::ControllerSocketProtocol::initialize
> (this=0x5555559fb580) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/c2/ControllerSocketProtocol.cpp:78
> #22 0x00007ffff7439037 in org::apache::nifi::minifi::FlowController::start
> (this=0x555555a56cc0) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/FlowController.cpp:337
> #23 0x00007ffff74377f8 in
> org::apache::nifi::minifi::FlowController::applyConfiguration
> (this=0x555555a56cc0, source="ControllerSocketProtocol",
> configurePayload="# Licensed to the Apache Software Foundation (ASF)
> under one or more\n# contributor license agreements. See the NOTICE file
> distributed with\n# this work for additional information regarding copyright
> "...,
> flow_id=std::optional<std::string> [no contained value]) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/FlowController.cpp:142
> #24 0x00007ffff7439551 in
> org::apache::nifi::minifi::FlowController::applyUpdate (this=0x555555a56cc0,
> source="ControllerSocketProtocol",
> configuration="# Licensed to the Apache Software Foundation (ASF) under
> one or more\n# contributor license agreements. See the NOTICE file
> distributed with\n# this work for additional information regarding copyright
> "..., persist=false,
> flow_id=std::optional<std::string> [no contained value]) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/FlowController.cpp:390
> #25 0x00007ffff7516954 in
> org::apache::nifi::minifi::c2::ControllerSocketProtocol::handleUpdate
> (this=0x5555559fb580, stream=0x7fffe3ffec40) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/c2/ControllerSocketProtocol.cpp:152
> #26 0x00007ffff75180aa in
> org::apache::nifi::minifi::c2::ControllerSocketProtocol::handleCommand
> (this=0x5555559fb580, stream=0x7fffe3ffec40) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/c2/ControllerSocketProtocol.cpp:310
> #27 0x00007ffff75158e4 in operator() (__closure=0x7fffe3ffed00,
> stream=0x7fffe3ffec40) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/c2/ControllerSocketProtocol.cpp:93
> #28 0x00007ffff75191b4 in std::__invoke_impl<void,
> org::apache::nifi::minifi::c2::ControllerSocketProtocol::initialize()::<lambda(org::apache::nifi::minifi::io::BaseStream*)>&,
> org::apache::nifi::minifi::io::BaseStream*>(std::__invoke_other, struct
> {...} &) (__f=...)
> at /usr/include/c++/11/bits/invoke.h:61
> #29 0x00007ffff7518bc7 in std::__invoke_r<void,
> org::apache::nifi::minifi::c2::ControllerSocketProtocol::initialize()::<lambda(org::apache::nifi::minifi::io::BaseStream*)>&,
> org::apache::nifi::minifi::io::BaseStream*>(struct {...} &) (__fn=...)
> at /usr/include/c++/11/bits/invoke.h:111
> #30 0x00007ffff751861a in
> std::_Function_handler<void(org::apache::nifi::minifi::io::BaseStream*),
> org::apache::nifi::minifi::c2::ControllerSocketProtocol::initialize()::<lambda(org::apache::nifi::minifi::io::BaseStream*)>
> >::_M_invoke(const std::_Any_data &,
> org::apache::nifi::minifi::io::BaseStream *&&) (__functor=...,
> __args#0=@0x7fffe3ffebe0: 0x7fffe3ffec40) at
> /usr/include/c++/11/bits/std_function.h:290
> #31 0x00007ffff76d953f in std::function<void
> (org::apache::nifi::minifi::io::BaseStream*)>::operator()(org::apache::nifi::minifi::io::BaseStream*)
> const (this=0x7fffe3ffed00, __args#0=0x7fffe3ffec40) at
> /usr/include/c++/11/bits/std_function.h:590
> #32 0x00007ffff76d89d3 in operator()(std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>) const
> (__closure=0x555555a63c28, handler=...) at
> /home/ggyimesi/projects/nifi-minifi-cpp-fork/libminifi/src/io/ServerSocket.cpp:65
> #33 0x00007ffff76d9230 in std::__invoke_impl<void,
> org::apache::nifi::minifi::io::ServerSocket::registerCallback(std::function<bool()>,
>
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)::<lambda(std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)>,
> std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>
> >(std::__invoke_other, struct {...} &&) (__f=...) at
> /usr/include/c++/11/bits/invoke.h:61
> #34 0x00007ffff76d917c in
> std::__invoke<org::apache::nifi::minifi::io::ServerSocket::registerCallback(std::function<bool()>,
>
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)::<lambda(std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)>,
> std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)> >(struct
> {...} &&) (__fn=...) at /usr/include/c++/11/bits/invoke.h:96
> #35 0x00007ffff76d90af in
> std::thread::_Invoker<std::tuple<org::apache::nifi::minifi::io::ServerSocket::registerCallback(std::function<bool()>,
>
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)::<lambda(std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)>,
> std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)> >
> >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x555555a63be8) at
> /usr/include/c++/11/bits/std_thread.h:253
> #36 0x00007ffff76d904c in
> std::thread::_Invoker<std::tuple<org::apache::nifi::minifi::io::ServerSocket::registerCallback(std::function<bool()>,
>
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)::<lambda(std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)>,
> std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)> >
> >::operator()(void) (this=0x555555a63be8) at
> /usr/include/c++/11/bits/std_thread.h:260
> #37 0x00007ffff76d9030 in
> std::thread::_State_impl<std::thread::_Invoker<std::tuple<org::apache::nifi::minifi::io::ServerSocket::registerCallback(std::function<bool()>,
>
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)::<lambda(std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)>)>,
> std::function<bool()>,
> std::function<void(org::apache::nifi::minifi::io::BaseStream*)> > >
> >::_M_run(void) (this=0x555555a63be0) at
> /usr/include/c++/11/bits/std_thread.h:211
> #38 0x00007ffff64dc2b3 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
> #39 0x00007ffff6094b43 in start_thread (arg=<optimized out>) at
> ./nptl/pthread_create.c:442
> #40 0x00007ffff6126a00 in clone3 () at
> ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)