matador icon indicating copy to clipboard operation
matador copied to clipboard

Multithread segment fault! connect()

Open suisou opened this issue 5 years ago • 2 comments

connection conn(MYSQL_LINK); conn.connect();

segment fault!

call stack.

libmysqlclient.so.21!std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const	
libmysqlclient.so.21!std::__detail::_Map_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)	
libmysqlclient.so.21!map_coll_name_to_number(char const*, int)	
libmysqlclient.so.21!add_collation(CHARSET_INFO*)	
libmysqlclient.so.21!my_xml_leave(MY_XML_PARSER*, char const*, unsigned long)	
libmysqlclient.so.21!my_xml_parse(MY_XML_PARSER*, char const*, unsigned long)	
libmysqlclient.so.21!my_parse_charset_xml(MY_CHARSET_LOADER*, char const*, unsigned long)	
libmysqlclient.so.21!my_read_charset_file(MY_CHARSET_LOADER*, char const*, int)	
libmysqlclient.so.21!init_available_charsets()	
libpthread.so.0!__pthread_once_slow	
libmysqlclient.so.21!void std::call_once<void (&)()>(std::once_flag&, void (&)())	
libmysqlclient.so.21!my_charset_get_by_name(MY_CHARSET_LOADER*, char const*, unsigned int, int)	
libmysqlclient.so.21!get_charset_by_csname(char const*, unsigned int, int)	
libmysqlclient.so.21!mysql_init_character_set(MYSQL*)	
libmysqlclient.so.21!csm_parse_handshake(mysql_async_connect*)	
libmysqlclient.so.21!mysql_real_connect	
libmatador-mysql.so.0!matador::mysql::mysql_connection::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)	
libmatador-sql.so.0!matador::connection::connect()	
UpdateRobotBattery(unsigned char * buff, int size) Line 1090	
ThreadRobotSta(void * _conf) Line 1285	C++
libpthread.so.0!start_thread	
libc.so.6!clone	

suisou avatar Feb 10 '20 08:02 suisou

I have add mutex to all query opration.

suisou avatar Feb 10 '20 09:02 suisou

Ok, I think, I've to dive depper into this problem, since their are also issues #105 and #117 with a similar subject. First I need to create a stub of code leading to this error.

zussel avatar Feb 10 '20 12:02 zussel