-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
storage service crashed when stopping service #583
Milestone
Comments
monadbobo
added a commit
to monadbobo/nebula
that referenced
this issue
Jul 4, 2019
When the storage service deamon is started, the nebula::meta::MetaClient will use the MetaServerBasedPartManager object(MetaClient::registerListener), but the MetaServerBasedPartManager object will be released before nebula::meta::MetaClient(through KVStore object), so web need to manually release nebula::meta::MetaClient here before release KVStore object.
monadbobo
added a commit
to monadbobo/nebula
that referenced
this issue
Jul 4, 2019
When the storage service deamon is started, the nebula::meta::MetaClient will use the MetaServerBasedPartManager object(MetaClient::registerListener), but the MetaServerBasedPartManager object will be released before nebula::meta::MetaClient(through KVStore object), so we need to manually release nebula::meta::MetaClient here before release KVStore object.
monadbobo
added a commit
to monadbobo/nebula
that referenced
this issue
Jul 8, 2019
When the storage service deamon is started, the nebula::meta::MetaClient will use the MetaServerBasedPartManager object(MetaClient::registerListener), but the MetaServerBasedPartManager object will be released before nebula::meta::MetaClient(through KVStore object), so we need to manually release nebula::meta::MetaClient here before release KVStore object.
monadbobo
added a commit
to monadbobo/nebula
that referenced
this issue
Jul 8, 2019
summary: When the storage service deamon is started, the nebula::meta::MetaClient will use the MetaServerBasedPartManager object(MetaClient::registerListener), but the MetaServerBasedPartManager object will be released before nebula::meta::MetaClient(through KVStore object). Added the MetaClient::unRegisterListener method to stop the background thread and reset the listener_ object, And the unRegisterListener is called when the MetaServerBasedPartManager object was released.
I think we should enable ASAN by default |
monadbobo
added a commit
to monadbobo/nebula
that referenced
this issue
Jul 12, 2019
Use a read-write lock in metaclient to protect the listener_.
monadbobo
added a commit
to monadbobo/nebula
that referenced
this issue
Jul 19, 2019
Fixed possible thread competition for checking listener_ .
dutor
pushed a commit
that referenced
this issue
Jul 19, 2019
* Fixed a bug where the storage service might crash (#583) summary: When the storage service deamon is started, the nebula::meta::MetaClient will use the MetaServerBasedPartManager object(MetaClient::registerListener), but the MetaServerBasedPartManager object will be released before nebula::meta::MetaClient(through KVStore object). Added the MetaClient::unRegisterListener method to stop the background thread and reset the listener_ object, And the unRegisterListener is called when the MetaServerBasedPartManager object was released. * Fixed a bug where the storage service might crash (#583) Use a read-write lock in metaclient to protect the listener_. * Fixed a bug where the storage service might crash (#583) Fixed possible thread competition for checking listener_ .
tong-hao
pushed a commit
to tong-hao/nebula
that referenced
this issue
Jun 1, 2021
…esoft-inc#595) * Fixed a bug where the storage service might crash (vesoft-inc#583) summary: When the storage service deamon is started, the nebula::meta::MetaClient will use the MetaServerBasedPartManager object(MetaClient::registerListener), but the MetaServerBasedPartManager object will be released before nebula::meta::MetaClient(through KVStore object). Added the MetaClient::unRegisterListener method to stop the background thread and reset the listener_ object, And the unRegisterListener is called when the MetaServerBasedPartManager object was released. * Fixed a bug where the storage service might crash (vesoft-inc#583) Use a read-write lock in metaclient to protect the listener_. * Fixed a bug where the storage service might crash (vesoft-inc#583) Fixed possible thread competition for checking listener_ .
yixinglu
pushed a commit
to yixinglu/nebula
that referenced
this issue
Mar 21, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I compile the nebula with addresssanitizer.
When I started, the query engine service crashed due to some exceptions. At this point, I stopped the storage service and then caused the storage service to crash. The following was the output of addresssanitizer.
0x60400011f060 is located 16 bytes inside of 40-byte region [0x60400011f050,0x60400011f078)
freed by thread T0 here:
#0 0x7fcc08302a50 in operator delete(void*, unsigned long) (/lib64/libasan.so.5+0xf2a50)
#1 0x17a93cc in nebula::kvstore::MetaServerBasedPartManager::~MetaServerBasedPartManager() src/kvstore/PartManager.cpp:48
#2 0x148d8ce in std::default_deletenebula::kvstore::PartManager::operator()(nebula::kvstore::PartManager*) const (/data/pagefault/tools/nebula/bin/nebula-storaged+0x148d8ce)
#3 0x1487dbc in std::unique_ptr<nebula::kvstore::PartManager, std::default_deletenebula::kvstore::PartManager >::~unique_ptr() /usr/include/c++/8/bits/unique_ptr.h:274
#4 0x17cfdd8 in nebula::kvstore::NebulaStore::~NebulaStore() src/kvstore/NebulaStore.h:46
#5 0x17cfe3f in nebula::kvstore::NebulaStore::~NebulaStore() src/kvstore/NebulaStore.h:46
#6 0x148e1ea in std::default_deletenebula::kvstore::KVStore::operator()(nebula::kvstore::KVStore*) const (/data/pagefault/tools/nebula/bin/nebula-storaged+0x148e1ea)
#7 0x14883b2 in std::unique_ptr<nebula::kvstore::KVStore, std::default_deletenebula::kvstore::KVStore >::~unique_ptr() (/data/pagefault/tools/nebula/bin/nebula-storaged+0x14883b2)
#8 0x1478b94 in main src/daemons/StorageDaemon.cpp:208
#9 0x7fcc0797a412 in __libc_start_main ../csu/libc-start.c:308
#10 0x1474d0d in _start (/data/pagefault/tools/nebula/bin/nebula-storaged+0x1474d0d)
previously allocated by thread T0 here:
#0 0x7fcc08301470 in operator new(unsigned long) (/lib64/libasan.so.5+0xf1470)
#1 0x1488844 in std::_MakeUniqnebula::kvstore::MetaServerBasedPartManager::__single_object std::make_unique<nebula::kvstore::MetaServerBasedPartManager, std::pair<int, int>&, nebula::meta::MetaClient*&>(std::pair<int, int>&, nebula::meta::MetaClient*&) (/data/pagefault/tools/nebula/bin/nebula-storaged+0x14888
44)
#2 0x1475435 in getStoreInstance(std::pair<int, int>, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::shared_ptrfolly::IOThreadPoolExecutor, std::shared_ptr, nebula::meta::MetaClient*, nebula::meta::SchemaManager*) src/daemons/StorageDaemon.cpp:64
#3 0x1477d50 in main src/daemons/StorageDaemon.cpp:173
#4 0x7fcc0797a412 in __libc_start_main ../csu/libc-start.c:308
#5 0x1474d0d in _start (/data/pagefault/tools/nebula/bin/nebula-storaged+0x1474d0d)
The text was updated successfully, but these errors were encountered: