You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
XACC is being used in QIREE and we are trying to launch multiple instances of QIREE with XACC using multiple threads.
XACC initialization in multilple threads is causing trouble due to simultaneous access of global variables used in XACC for service registry, etc.
To reproduce this issue, you need to build XACC, QIREE, and IRIS, which is demonstrated using IRIS quantum application where it creates 64 tasks, which can be executed on multiple QIREE devices simultaneously.
apptainer and Makefile used to reproduce this issue is given here.
$ cd /software/iris/apps/quantum
$ IRIS_ARCHS=qiree IRIS_QIREE_DEVICE_FACTOR=2 gdb --args python3 test_qiree_iris.py
It throws segmentation fault.
[Thread 0x7fff50db3640 (LWP 3871475) exited]
4argv0x555556141508
terminate called after throwing an instance of 'std::runtime_error'
what(): The bundle context is no longer valid
Thread 66 "python3" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff51db5640 (LWP 3871473)]
0x00007ffff7cee9fc in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) up
#1 0x00007ffff7c9a476 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) up
#2 0x00007ffff7c807f3 in abort () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) up
#3 0x00007fff55e60b9e in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) up
#4 0x00007fff55e6c20c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) up
#5 0x00007fff55e6c277 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) up
#6 0x00007fff55e6c4d8 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) up
#7 0x00007fff531146d6 in cppmicroservices::BundleContextPrivate::CheckValid() const [clone .cold] () from /root/.xacc/lib/libCppMicroServices.so.4.0.0
(gdb) up
#8 0x00007fff5316eb66 in cppmicroservices::BundleContext::GetServiceReferences(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /root/.xacc/lib/libCppMicroServices.so.4.0.0
(gdb) up
#9 0x00007fff53702020 in cppmicroservices::BundleContext::GetServiceReferences<xacc::OptionsProvider> (this=0x55555612a878, filter="") at /software/xacc/tpls/cppmicroservices/framework/include/cppmicroservices/BundleContext.h:445
445 BaseVectorT serviceRefs = GetServiceReferences(clazz, filter);
(gdb) up
#10 0x00007fff536ff68e in xacc::ServiceRegistry::getServices<xacc::OptionsProvider> (this=0x55555612a850) at /software/xacc/xacc/service/ServiceRegistry.hpp:161
161 auto allServiceRefs = context.GetServiceReferences<ServiceInterface>();
(gdb) up
#11 0x00007fff536fa5cc in xacc::ServiceRegistry::getRegisteredOptions[abi:cxx11]() (this=0x55555612a850) at /software/xacc/xacc/service/ServiceRegistry.hpp:187
187 auto optionProviders = getServices<xacc::OptionsProvider>();
(gdb) up
#12 0x00007fff536f91e4 in xacc::getRegisteredOptions[abi:cxx11]() () at /software/xacc/xacc/service/xacc_service.cpp:74
74 return serviceRegistry->getRegisteredOptions();
bell.ll file is added. please place this file /software/iris/apps/quantum folder.
XACC is being used in QIREE and we are trying to launch multiple instances of QIREE with XACC using multiple threads.
XACC initialization in multilple threads is causing trouble due to simultaneous access of global variables used in XACC for service registry, etc.
To reproduce this issue, you need to build XACC, QIREE, and IRIS, which is demonstrated using IRIS quantum application where it creates 64 tasks, which can be executed on multiple QIREE devices simultaneously.
apptainer and Makefile used to reproduce this issue is given here.
apptainer.def
Build apptainer using below command.
Enter into apptainer shell
Run the application
It throws segmentation fault.
bell.ll file is added. please place this file /software/iris/apps/quantum folder.
The text was updated successfully, but these errors were encountered: