| Bug #43420 | ndb_mgmd cores on in InitConfigFileParser::Context::reportWarning | ||
|---|---|---|---|
| Submitted: | 5 Mar 2009 15:41 | Modified: | 17 Mar 2009 19:00 |
| Reporter: | Jonathan Miller | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S1 (Critical) |
| Version: | mysql-5.1-telco-6.4 | OS: | Linux |
| Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
[6 Mar 2009 9:24]
Magnus Blåudd
InitConfigFileParser::m_errstream is uninitialized
[6 Mar 2009 11:00]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/68480 2917 Magnus Svensson 2009-03-06 Bug#43420 ndb_mgmd cores on in InitConfigFileParser::Context::reportWarning - Remove remnants of m_errrstream(which was left uninitialized) and use g_eventLogger everywhere modified: storage/ndb/src/mgmsrv/InitConfigFileParser.cpp storage/ndb/src/mgmsrv/InitConfigFileParser.hpp
[7 Mar 2009 10:30]
Bugs System
Pushed into 5.1.32-ndb-6.4.4 (revid:msvensson@mysql.com-20090306160957-nwj1ulv16ozti2ij) (version source revid:msvensson@mysql.com-20090306160957-nwj1ulv16ozti2ij) (merge vers: 5.1.32-ndb-6.4.4) (pib:6)
[11 Mar 2009 3:48]
jack andrews
straight forward small fix
[17 Mar 2009 19:00]
Jon Stephens
Test failure; not in release version; doesn't appear to be applicable to end users. Closed without further action.

Description: Wen found that ndb_mgmd cores while using ACRT this morning, bt follows #0 0x0000003f3ff3f525 in vfprintf () from /lib64/tls/libc.so.6 #1 0x0000003f3ff480b6 in fprintf () from /lib64/tls/libc.so.6 #2 0x0000000000481a11 in InitConfigFileParser::Context::reportWarning (this=0x7fbffff1b0, fmt=Variable "fmt" is not available. ) at InitConfigFileParser.cpp:601 #3 0x00000000004805f5 in check_node_vs_replicas (sections=Variable "sections" is not available. ) at ../../../../storage/ndb/include/util/BaseString.hpp:199 #4 0x0000000000481dfa in InitConfigFileParser::run_config_rules (this=0x7fbffff510, ctx=@0x7fbffff1b0) at InitConfigFileParser.cpp:181 #5 0x0000000000483bfd in InitConfigFileParser::parse_mycnf (this=0x7fbffff510) at InitConfigFileParser.cpp:939 #6 0x000000000048875f in ConfigManager::load_config (config_filename=0x0, mycnf=Variable "mycnf" is not available. ) at ConfigManager.cpp:1658 #7 0x0000000000489295 in ConfigManager::init (this=0x823d90) at ConfigManager.cpp:1690 #8 0x000000000047050d in MgmtSrvr::init (this=0x836a30) at MgmtSrvr.cpp:404 #9 0x0000000000474fa5 in start () at main.cpp:277 #10 0x0000000000475211 in main (argc=Variable "argc" is not available. ) at main.cpp:256 ---- #0 0x0000003f3ff3f525 in vfprintf () from /lib64/tls/libc.so.6 (gdb) l 256 return start(); 257 } 258 259 int daemon_stop() 260 { 261 g_StopServer= true; 262 return 0; 263 } 264 265 int start() --- #2 0x0000000000481a11 in InitConfigFileParser::Context::reportWarning (this=0x7fbffff1b0, fmt=Variable "fmt" is not available. ) at InitConfigFileParser.cpp:601 601 fprintf(m_errstream, "Warning line %d: %s\n", (gdb) l 596 597 va_start(ap, fmt); 598 if (fmt != 0) 599 BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap); 600 va_end(ap); 601 fprintf(m_errstream, "Warning line %d: %s\n", 602 m_lineno, buf); 603 } 604 605 #include <my_sys.h> ----- (gdb) f 3 #3 0x00000000004805f5 in check_node_vs_replicas (sections=Variable "sections" is not available. ) at ../../../../storage/ndb/include/util/BaseString.hpp:199 199 { (gdb) l 194 friend bool operator!(const BaseString& str); 195 }; 196 197 inline const char* 198 BaseString::c_str() const 199 { 200 return m_chr; 201 } 202 203 inline unsigned ---- #4 0x0000000000481dfa in InitConfigFileParser::run_config_rules (this=0x7fbffff510, ctx=@0x7fbffff1b0) at InitConfigFileParser.cpp:181 181 if(!(* ConfigInfo::m_ConfigRules[i].m_configRule)(tmp, ctx, (gdb) l 176 ctx.m_userDefaults = 0; 177 ctx.m_currentInfo = 0; 178 ctx.m_systemDefaults = 0; 179 180 Vector<ConfigInfo::ConfigRuleSection> tmp; 181 if(!(* ConfigInfo::m_ConfigRules[i].m_configRule)(tmp, ctx, 182 ConfigInfo::m_ConfigRules[i].m_ruleData))183 return 0; 184 185 for(size_t j = 0; j<tmp.size(); j++){ How to repeat: sh -x scripts/boot.sh --clone=mysql-5.1-telco-6.4 --conf=/space/cluster_rep_auto/cr-autotest.conf --leave-clone --start-and-exit 2-dn-func