[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Chetaev updated IGNITE-5208: Labels: c++ cpp (was: c++) > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR >Assignee: Igor Sapego >Priority: Critical > Labels: c++, cpp > Fix For: 2.1 > > > The following segfault happens when: > - using multiple caches (suffixed with number as in X_\{number\}), > - caches contain same type of object but not the same objects, > - doing multithreaded `::Put` operation, only one put is done on each cache > concurrently, independent caches (X_1, X_2, ...) can be operated on and > called `::Put` on concurrently, but that should not be relevant as cache api > is thread safe. > {code:none} > C [test+0xf8116a] std::less::operator()(int const&, int const&) > const+0x14 > C [test+0x1106305] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::_M_lower_bound(std::_Rb_tree_node ignite::common::concurrent::SharedPointer > > >*, std::_Rb_tree_node_base*, int const&)+0x41 > C [test+0x1105a9d] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x45 > C [test+0x1104e7f] std::map ignite::common::concurrent::SharedPointer, > std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x23 > C [test+0x1104031] > ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string std::char_traits, std::allocator > const&, int)+0x6f > C [test+0xe6de2d] void > ignite::impl::binary::BinaryWriterImpl::WriteTopObject > >(std::shared_ptr const&)+0xbb > C [test+0xe6cd48] > ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr > >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e > C [test+0x1128cf1] > ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, > ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 > C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, > ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 > C [test+0x1125f41] > ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, > ignite::IgniteError&)+0x2d > C [test+0xe5539a] ignite::cache::Cache std::char_traits, std::allocator >, std::shared_ptr > >::Put(std::__cxx11::basic_string, > std::allocator > const&, std::shared_ptr const&, > ignite::IgniteError&)+0x52 > {code} > There seems to be some kind of race situation: > {code:none} > 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x= reading variable>, __y=@0x7fff80846e04: 2066246303) at > /usr/include/c++/6.3.1/bits/stl_function.h:386 > {code} > {code:none} > #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler > (this=0x1a560d0, typeName="test.data", typeId=2066246303) at > src/impl/binary/binary_type_manager.cpp:56 > 56 std::map::iterator it = > snapshots0.find(typeId); > (gdb) print snapshots0 > $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl > = 0x0}...} > (gdb) print snapshot > $11 = {ptr = 0x7fffda4f, impl = 0x11} > {code} > `impl` pointers seems to be corrupted on multiple places. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Description: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at /usr/include/c++/6.3.1/bits/stl_function.h:386 {code} {code:none} #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler (this=0x1a560d0, typeName="test.data", typeId=2066246303) at src/impl/binary/binary_type_manager.cpp:56 56 std::map::iterator it = snapshots0.find(typeId); (gdb) print snapshots0 $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl = 0x0}...} (gdb) print snapshot $11 = {ptr = 0x7fffda4f, impl = 0x11} {code} `impl` pointers seems to be corrupted on multiple places. was: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at /usr/include/c++/6.3.1/bits/stl_function.h:386 {code} {code:none} #4 0x015040c
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-5208: Fix Version/s: 2.1 > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR >Assignee: Igor Sapego >Priority: Critical > Labels: c++ > Fix For: 2.1 > > > The following segfault happens when: > - using multiple caches (suffixed with number as in X_\{number\}), > - caches contain same type of object but not the same objects, > - doing multithreaded `::Put` operation, only one put is done on each cache > concurrently, independent caches (X_1, X_2, ...) can be operated on and > called `::Put` on concurrently, but that should not be relevant as cache api > is thread safe. > {code:none} > C [test+0xf8116a] std::less::operator()(int const&, int const&) > const+0x14 > C [test+0x1106305] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::_M_lower_bound(std::_Rb_tree_node ignite::common::concurrent::SharedPointer > > >*, std::_Rb_tree_node_base*, int const&)+0x41 > C [test+0x1105a9d] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x45 > C [test+0x1104e7f] std::map ignite::common::concurrent::SharedPointer, > std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x23 > C [test+0x1104031] > ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string std::char_traits, std::allocator > const&, int)+0x6f > C [test+0xe6de2d] void > ignite::impl::binary::BinaryWriterImpl::WriteTopObject > >(std::shared_ptr const&)+0xbb > C [test+0xe6cd48] > ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr > >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e > C [test+0x1128cf1] > ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, > ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 > C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, > ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 > C [test+0x1125f41] > ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, > ignite::IgniteError&)+0x2d > C [test+0xe5539a] ignite::cache::Cache std::char_traits, std::allocator >, std::shared_ptr > >::Put(std::__cxx11::basic_string, > std::allocator > const&, std::shared_ptr const&, > ignite::IgniteError&)+0x52 > {code} > There seems to be some kind of race situation: > {code:none} > 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x= reading variable>, __y=@0x7fff80846e04: 2066246303) at > /usr/include/c++/6.3.1/bits/stl_function.h:386 > {code} > {code:none} > #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler > (this=0x1a560d0, typeName="test.data", typeId=2066246303) at > src/impl/binary/binary_type_manager.cpp:56 > 56 std::map::iterator it = > snapshots0.find(typeId); > (gdb) print snapshots0 > $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl > = 0x0}...} > (gdb) print snapshot > $11 = {ptr = 0x7fffda4f, impl = 0x11} > {code} > `impl` pointers seems to be corrupted on multiple places. Why aren't you > using `std::shared_ptr` instead of your own concurrent shared pointer? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-5208: Component/s: (was: cache) platforms > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR >Assignee: Igor Sapego >Priority: Critical > Labels: c++ > Fix For: 2.1 > > > The following segfault happens when: > - using multiple caches (suffixed with number as in X_\{number\}), > - caches contain same type of object but not the same objects, > - doing multithreaded `::Put` operation, only one put is done on each cache > concurrently, independent caches (X_1, X_2, ...) can be operated on and > called `::Put` on concurrently, but that should not be relevant as cache api > is thread safe. > {code:none} > C [test+0xf8116a] std::less::operator()(int const&, int const&) > const+0x14 > C [test+0x1106305] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::_M_lower_bound(std::_Rb_tree_node ignite::common::concurrent::SharedPointer > > >*, std::_Rb_tree_node_base*, int const&)+0x41 > C [test+0x1105a9d] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x45 > C [test+0x1104e7f] std::map ignite::common::concurrent::SharedPointer, > std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x23 > C [test+0x1104031] > ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string std::char_traits, std::allocator > const&, int)+0x6f > C [test+0xe6de2d] void > ignite::impl::binary::BinaryWriterImpl::WriteTopObject > >(std::shared_ptr const&)+0xbb > C [test+0xe6cd48] > ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr > >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e > C [test+0x1128cf1] > ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, > ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 > C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, > ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 > C [test+0x1125f41] > ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, > ignite::IgniteError&)+0x2d > C [test+0xe5539a] ignite::cache::Cache std::char_traits, std::allocator >, std::shared_ptr > >::Put(std::__cxx11::basic_string, > std::allocator > const&, std::shared_ptr const&, > ignite::IgniteError&)+0x52 > {code} > There seems to be some kind of race situation: > {code:none} > 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x= reading variable>, __y=@0x7fff80846e04: 2066246303) at > /usr/include/c++/6.3.1/bits/stl_function.h:386 > {code} > {code:none} > #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler > (this=0x1a560d0, typeName="test.data", typeId=2066246303) at > src/impl/binary/binary_type_manager.cpp:56 > 56 std::map::iterator it = > snapshots0.find(typeId); > (gdb) print snapshots0 > $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl > = 0x0}...} > (gdb) print snapshot > $11 = {ptr = 0x7fffda4f, impl = 0x11} > {code} > `impl` pointers seems to be corrupted on multiple places. Why aren't you > using `std::shared_ptr` instead of your own concurrent shared pointer? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Description: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at /usr/include/c++/6.3.1/bits/stl_function.h:386 {code} {code:none} #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler (this=0x1a560d0, typeName="test.data", typeId=2066246303) at src/impl/binary/binary_type_manager.cpp:56 56 std::map::iterator it = snapshots0.find(typeId); (gdb) print snapshots0 $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl = 0x0}...} (gdb) print snapshot $11 = {ptr = 0x7fffda4f, impl = 0x11} {code} `impl` pointers seems to be corrupted on multiple places. Why aren't you using `std::shared_ptr` instead of your own concurrent shared pointer? was: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Description: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at /usr/include/c++/6.3.1/bits/stl_function.h:386 {code} {code:none} #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler (this=0x1a560d0, typeName="test.data", typeId=2066246303) at src/impl/binary/binary_type_manager.cpp:56 56 std::map::iterator it = snapshots0.find(typeId); (gdb) print snapshots0 $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl = 0x0}...} (gdb) print snapshot $11 = {ptr = 0x7fffda4f, impl = 0x11} {code} was: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at /usr/include/c++/6.3.1/bits/stl_function.h:386 {code} {code:none} #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler (
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Description: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} There seems to be some kind of race situation: {code:none} 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at /usr/include/c++/6.3.1/bits/stl_function.h:386 {code} {code:none} #4 0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler (this=0x1a560d0, typeName="test.data", typeId=2066246303) at src/impl/binary/binary_type_manager.cpp:56 56 std::map::iterator it = snapshots0.find(typeId); (gdb) print snapshots0 $10 = std::map with 42286576 elements = \{[42312864] = \{ptr = 0x285a4a0, impl = 0x0\}...\} (gdb) print snapshot $11 = \{ptr = 0x7fffda4f, impl = 0x11\} {code} was: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Description: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on each cache concurrently, independent caches (X_1, X_2, ...) can be operated on and called `::Put` on concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} was: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on *one* cache concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR >Priority: Critical > Labels: c++ > > The following segfault happens when: > - using multiple caches (suffixed with number as in X_\{number\}), > - caches contain same type of object but not the same objects, > - doing multithreaded `::Put` operation, only one put is done on each cache > concurrently, independent caches (X_1, X_2, ...) can be operated on and > called `::Put` on concurrently, but that should not be relevant as cache api > is thread safe. > {code:none} > C [test+0xf8116a] std::less::operator()(int const&, int const&) > const+0x14 > C [test+0x1106305] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignit
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Description: The following segfault happens when: - using multiple caches (suffixed with number as in X_\{number\}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on *one* cache concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} was: The following segfault happens when: - using multiple caches (suffixed with number as in X_{number}), - caches contain same type of object but not the same objects, - doing multithreaded `::Put` operation, only one put is done on *one* cache concurrently, but that should not be relevant as cache api is thread safe. {code:none} C [test+0xf8116a] std::less::operator()(int const&, int const&) const+0x14 C [test+0x1106305] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::_M_lower_bound(std::_Rb_tree_node > >*, std::_Rb_tree_node_base*, int const&)+0x41 C [test+0x1105a9d] std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::find(int const&)+0x45 C [test+0x1104e7f] std::map, std::less, std::allocator > > >::find(int const&)+0x23 C [test+0x1104031] ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string, std::allocator > const&, int)+0x6f C [test+0xe6de2d] void ignite::impl::binary::BinaryWriterImpl::WriteTopObject >(std::shared_ptr const&)+0xbb C [test+0xe6cd48] ignite::impl::In2Operation, std::allocator >, std::shared_ptr >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e C [test+0x1128cf1] ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 C [test+0x1125f41] ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, ignite::IgniteError&)+0x2d C [test+0xe5539a] ignite::cache::Cache, std::allocator >, std::shared_ptr >::Put(std::__cxx11::basic_string, std::allocator > const&, std::shared_ptr const&, ignite::IgniteError&)+0x52 {code} > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR >Priority: Critical > Labels: c++ > > The following segfault happens when: > - using multiple caches (suffixed with number as in X_\{number\}), > - caches contain same type of object but not the same objects, > - doing multithreaded `::Put` operation, only one put is done on *one* > cache concurrently, but that should not be relevant as cache api is thread > safe. > {code:none} > C [test+0xf8116a] std::less::operator()(int const&, int const&) > const+0x14 > C [test+0x1106305] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::_M_lower_bound(std::_Rb_tree_node ignite::common::concurrent::SharedPointer > > >*, std::_Rb_tree_node_base*, int const&)+0x41 > C [test
[jira] [Updated] (IGNITE-5208) C++ Segfault on Put
[ https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tolga HOŞGÖR updated IGNITE-5208: - Priority: Critical (was: Major) > C++ Segfault on Put > --- > > Key: IGNITE-5208 > URL: https://issues.apache.org/jira/browse/IGNITE-5208 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.0 >Reporter: Tolga HOŞGÖR >Priority: Critical > Labels: c++ > > The following segfault happens when: > - using multiple caches (suffixed with number as in X_{number}), > - caches contain same type of object but not the same objects, > - doing multithreaded `::Put` operation, only one put is done on *one* > cache concurrently, but that should not be relevant as cache api is thread > safe. > {code:none} > C [test+0xf8116a] std::less::operator()(int const&, int const&) > const+0x14 > C [test+0x1106305] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::_M_lower_bound(std::_Rb_tree_node ignite::common::concurrent::SharedPointer > > >*, std::_Rb_tree_node_base*, int const&)+0x41 > C [test+0x1105a9d] std::_Rb_tree ignite::common::concurrent::SharedPointer > >, std::_Select1st ignite::common::concurrent::SharedPointer > > >, std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x45 > C [test+0x1104e7f] std::map ignite::common::concurrent::SharedPointer, > std::less, std::allocator ignite::common::concurrent::SharedPointer > > > >::find(int const&)+0x23 > C [test+0x1104031] > ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string std::char_traits, std::allocator > const&, int)+0x6f > C [test+0xe6de2d] void > ignite::impl::binary::BinaryWriterImpl::WriteTopObject > >(std::shared_ptr const&)+0xbb > C [test+0xe6cd48] > ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr > >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e > C [test+0x1128cf1] > ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*, > ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9 > C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int, > ignite::impl::InputOperation&, ignite::IgniteError&)+0x65 > C [test+0x1125f41] > ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&, > ignite::IgniteError&)+0x2d > C [test+0xe5539a] ignite::cache::Cache std::char_traits, std::allocator >, std::shared_ptr > >::Put(std::__cxx11::basic_string, > std::allocator > const&, std::shared_ptr const&, > ignite::IgniteError&)+0x52 > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)