14.07.2021 13:06, Alex Peshkoff via Firebird-devel wrote:
Looks like it is not thread races or I did call gettid() wrongly.
But if all that chain was called from fb_shutdown() it does not matter - UnloadDetector is
not needed. Can you show the stack trace when doClean is called?
Here it is:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff68f4921 in __GI_abort () at abort.c:79
#2 0x00007ffff0a5fffc in PluginModule::doClean (this=0x7ffff0f971b0 <module>) at
/home/sd/ibptrace/plugin/main.cpp:253
#3 0x00007ffff0a65132 in Firebird::IPluginModuleBaseImpl<PluginModule,
Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<PluginModule,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IPluginModule> >
>::cloopdoCleanDispatcher (
self=0x7ffff0f971b8 <module+8>) at
/usr/local/firebird/include/firebird/IdlFbInterfaces.h:7728
#4 0x00007ffff78fea84 in Firebird::IPluginModule::doClean (this=<optimized
out>)
at /home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:778
#5 (anonymous namespace)::PluginModule::~PluginModule (this=0x7ffff7fedb70,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/yvalve/PluginManager.cpp:392
#6 (anonymous namespace)::PluginModule::~PluginModule (this=0x7ffff7fedb70,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/yvalve/PluginManager.cpp:394
#7 Firebird::RefCounted::release (this=0x7ffff7fedb70) at
/home/sd/firebird/src/include/../common/classes/RefCounted.h:46
#8 0x00007ffff78fec8e in (anonymous namespace)::ConfiguredPlugin::~ConfiguredPlugin
(this=0x7ffff7fedca0,
__in_chrg=<optimized out>) at
/home/sd/firebird/src/yvalve/PluginManager.cpp:505
#9 (anonymous namespace)::ConfiguredPlugin::release (this=0x7ffff7fedca0)
at /home/sd/firebird/src/yvalve/PluginManager.cpp:706
#10 0x00007ffff78ff70d in Firebird::RefPtr<(anonymous
namespace)::ConfiguredPlugin>::~RefPtr (this=0x7ffff7fede10,
__in_chrg=<optimized out>) at
/home/sd/firebird/src/include/../common/classes/RefCounted.h:122
#11 (anonymous namespace)::FactoryParameter::~FactoryParameter (this=0x7ffff7feddf0,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/yvalve/PluginManager.cpp:573
#12 0x00007ffff78ff7e5 in (anonymous namespace)::FactoryParameter::~FactoryParameter
(this=0x7ffff7feddf0,
__in_chrg=<optimized out>) at
/home/sd/firebird/src/yvalve/PluginManager.cpp:582
#13 Firebird::RefCntIface<Firebird::IPluginConfigImpl<(anonymous
namespace)::FactoryParameter, Firebird::CheckStatusWrapper,
Firebird::IReferenceCountedImpl<(anonymous namespace)::FactoryParameter,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<(anonymous
namespace)::FactoryParameter, Firebird::CheckStatusWrapper,
Firebird::Inherit<Firebird::IPluginConfig> > > > > >::release (this=0x7ffff7feddf0) at
/home/sd/firebird/src/yvalve/../yvalve/../common/classes/ImplementHelper.h:120
#14 Firebird::IPluginConfigBaseImpl<(anonymous namespace)::FactoryParameter,
Firebird::CheckStatusWrapper, Firebird::IReferenceCountedImpl<(anonymous
namespace)::FactoryParameter, Firebird::CheckStatusWrapper,
Firebird::Inherit<Firebird::IVersionedImpl<(anonymous namespace)::FactoryParameter,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IPluginConfig> > > >
>::cloopreleaseDispatcher (self=<optimized out>) at
/home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:7622
#15 0x00007ffff78fda58 in Firebird::IReferenceCounted::release
(this=0x7ffff7feddf8)
at /home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:181
#16 Firebird::PluginManager::releasePlugin (this=<optimized out>,
plugin=0x5555559d5278)
at /home/sd/firebird/src/yvalve/PluginManager.cpp:1093
#17 0x00007ffff7905799 in Firebird::IPluginManagerBaseImpl<Firebird::PluginManager,
Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<Firebird::PluginManager,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IPluginManager> >
>::cloopreleasePluginDispatcher (self=<optimized out>, plugin=<optimized out>) at
/home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:7861
#18 0x00007ffff4c7ac06 in Firebird::IPluginManager::releasePlugin (plugin=<optimized out>,
this=<optimized out>)
at /home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:863
#19 Jrd::TraceManager::Factories::~Factories (this=0x7ffff7ecacd0,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/jrd/trace/../../jrd/trace/TraceManager.h:192
#20 Jrd::TraceManager::shutdown () at
/home/sd/firebird/src/jrd/trace/TraceManager.cpp:165
#21 0x00007ffff49e8e60 in Jrd::JProvider::shutdown (this=this@entry=0x7ffff7f87eb0,
status=status@entry=0x7fffffffd9a0,
timeout=timeout@entry=10000, reason=reason@entry=-7) at
/home/sd/firebird/src/jrd/jrd.cpp:4518
#22 0x00007ffff486cf62 in Firebird::IProviderBaseImpl<Jrd::JProvider,
Firebird::CheckStatusWrapper, Firebird::IPluginBaseImpl<Jrd::JProvider,
Firebird::CheckStatusWrapper,
Firebird::Inherit<Firebird::IReferenceCountedImpl<Jrd::JProvider,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JProvider,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IProvider> > > > > >
>::cloopshutdownDispatcher (self=0x7ffff7f87eb8, status=0x7fffffffdb08, timeout=10000,
reason=-7)
at /home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:11122
#23 0x00007ffff794963d in Firebird::IProvider::shutdown<Firebird::CheckStatusWrapper>
(reason=-7, timeout=10000,
status=0x7fffffffdb00, this=<optimized out>) at
/home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:2539
#24 Why::Dispatcher::shutdown (this=this@entry=0x7ffff7fec930,
userStatus=userStatus@entry=0x7fffffffdfb0,
timeout=timeout@entry=10000, reason=reason@entry=-7) at
/home/sd/firebird/src/yvalve/why.cpp:6478
#25 0x00007ffff7949f69 in fb_shutdown (timeout=timeout@entry=10000,
reason=reason@entry=-7)
at /home/sd/firebird/src/yvalve/why.cpp:3681
#26 0x00007ffff78fd9c8 in Firebird::PluginManager::unregisterModule (this=<optimized out>,
cleanup=0x7ffff7f87cf8)
at /home/sd/firebird/src/yvalve/PluginManager.cpp:1061
#27 0x00007ffff7905759 in Firebird::IPluginManagerBaseImpl<Firebird::PluginManager,
Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<Firebird::PluginManager,
Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IPluginManager> >
>::cloopunregisterModuleDispatcher (self=<optimized out>, cleanup=<optimized out>)
at /home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:7819
#28 0x00007ffff4d74a80 in Firebird::IPluginManager::unregisterModule
(cleanup=0x7ffff7f87cf8, this=<optimized out>)
at /home/sd/firebird/src/include/firebird/IdlFbInterfaces.h:842
#29 Firebird::UnloadDetectorHelper::~UnloadDetectorHelper (this=0x7ffff7f87cf0,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/include/../common/classes/ImplementHelper.h:323
#30 Firebird::UnloadDetectorHelper::~UnloadDetectorHelper (this=0x7ffff7f87cf0,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/include/../common/classes/ImplementHelper.h:326
#31 Firebird::GlobalPtr<Firebird::UnloadDetectorHelper,
(Firebird::InstanceControl::DtorPriority)1>::dtor (
this=0x7ffff536c810 <(anonymous namespace)::myModule>) at
/home/sd/firebird/src/include/../common/classes/init.h:136
#32
Firebird::InstanceControl::InstanceLink<Firebird::GlobalPtr<Firebird::UnloadDetectorHelper,
(Firebird::InstanceControl::DtorPriority)1>,
(Firebird::InstanceControl::DtorPriority)1>::dtor (this=0x7ffff7f87d30)
at /home/sd/firebird/src/include/../common/classes/init.h:110
#33 0x00007ffff4d803b5 in Firebird::InstanceControl::InstanceList::destructors
()
at /home/sd/firebird/src/common/classes/init.cpp:310
#34 0x00007ffff4d80466 in Firebird::InstanceControl::destructors () at
/home/sd/firebird/src/common/classes/init.cpp:291
#35 0x00007ffff4d805dc in (anonymous namespace)::allClean () at
/home/sd/firebird/src/common/classes/init.cpp:132
#36 (anonymous namespace)::Cleanup::~Cleanup (this=<optimized out>,
__in_chrg=<optimized out>)
at /home/sd/firebird/src/common/classes/init.cpp:172
#37 0x00007ffff68f7161 in __run_exit_handlers (status=0, listp=0x7ffff6c9f718
<__exit_funcs>,
run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
at exit.c:108
#38 0x00007ffff68f725a in __GI_exit (status=<optimized out>) at exit.c:139
#39 0x00007ffff68d5bfe in __libc_start_main (main=0x5555555756e0 <main(int, char**)>,
argc=2, argv=0x7fffffffe378,
init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffffffe368) at ../csu/libc-start.c:344
#40 0x00005555555760fa in _start ()
--
WBR, SD.
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel