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

Reply via email to